signed int __fastcall sub_4397B0(LONG a1, HINSTANCE a2)
{
HINSTANCE v2; // r4@1
LONG v3; // r6@1
bool v4; // zf@1
signed int result; // r0@1
HWND v6; // r0@2
HWND v7; // r4@2
char v8; // [sp+20h] [bp-48h]@4
char v9; // [sp+21h] [bp-47h]@4
char v10; // [sp+22h] [bp-46h]@4
char v11; // [sp+23h] [bp-45h]@4
WNDCLASSW WndClass; // [sp+24h] [bp-44h]@1
v2 = a2;
v3 = a1;
WndClass.lpfnWndProc = (WNDPROC)sub_43998C;
*(_DWORD *)(a1 + 32) = a2;
WndClass.style = 3;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;
WndClass.hInstance = a2;
WndClass.hIcon = 0;
WndClass.lpszClassName = L"CSHELL";
WndClass.hCursor = LoadCursorW(0, (LPCWSTR)0x7F00);
WndClass.hbrBackground = 0;
WndClass.lpszMenuName = 0;
v4 = RegisterClassW(&WndClass) == 0;
result = 0;
if ( !v4 )
{
v6 = CreateWindowExW(0, L"CSHELL", (LPCWSTR)";N:g\vz廭", 0x86000000, 0, 0, 800, 480, 0, 0, v2, 0);//;N:g\vz廭=主机程序
v7 = v6;
if ( v6 )
{
*(_DWORD *)(v3 + 28) = v6;
*(_DWORD *)(v3 + 36) = 800;
*(_DWORD *)(v3 + 40) = 480;
SetWindowLongW(v6, -21, v3);
SetWindowTextW(v7, L"Shnshell");
SetWindowPos(*(HWND *)(dword_4D0AFC + 28), 0, 0, 0, 800, 480, 0x40u);
sub_45933C(v7);
*(_DWORD *)(v3 + 52) = 1600;
*(_DWORD *)(v3 + 44) = 800;
*(_DWORD *)(v3 + 48) = 480;
*(_DWORD *)(v3 + 64) = 0;
*(_DWORD *)(v3 + 60) = 768000;
*(_DWORD *)(v3 + 56) = 0;
*(_DWORD *)(v3 + 56) = malloc(0xBB800u);
v9 = 0;
v8 = 0;
v10 = 0;
v11 = -1;
sub_459004(v3 + 44, (int)&v8);
(*(void (__fastcall **)(LONG))(*(_DWORD *)v3 + 4))(v3);
ShowWindow(v7, 1);
UpdateWindow(v7);
result = 1;
}
else
{
result = 0;
}
}
return result;
VC窗口句柄,V3是一个窗口句柄,V3+52这个代表什么意思?怎么查+28+36这些对应的定义?函数是IDA反编译的
答案:2 悬赏:60 手机版
解决时间 2021-03-08 23:09
- 提问者网友:鐵馬踏冰河
- 2021-03-08 07:47
最佳答案
- 五星知识达人网友:独钓一江月
- 2021-03-08 08:00
实现多语言,有个简单的法。就是把这种已有的资源都写到配置文件里去,根据多语言都分别新增多个对应的配置文件,然后根据选择的语言调用不同地的配置文件更新,即可实现多语言界面。如果都是UI资源,就在RC文件中就有。
全部回答
- 1楼网友:我住北渡口
- 2021-03-08 09:30
你好!
!
仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯