我试图建立一个NSIS Plugin
在C++
。
这里是我的方法从NSIS设置信息:
void __declspec(dllexport) SetCredentials(HWND hWndParent, int string_size, TCHAR *variables, stack_t **stacktop, extra_parameters *extra) {
EXDLL_INIT();
server = getuservariable(INST_0);
port = myatou(getuservariable(INST_1));
database = getuservariable(INST_2);
username = getuservariable(INST_3);
password = getuservariable(INST_4);
MessageBox(hWndParent, server, L"Info", MB_OK); // Here is the problem
setuservariable(INST_0, server);
}
样品:
OutFile "Example.exe"
BrandingText " "
Section
MySQL::SetCredentials "localhost" 3306 "banananode" "root" ""
Pop $0
MessageBox MB_OK "Server: $0" ; Returns the server value...
SectionEnd
问题是,当我尝试打印出server
变量,中国文字会显示,不正确的文本:
当我返回与值setuservariable(INST_0, server);
,NSIS将被正确地显示它:
你能告诉我,什么是错? 我试图打造导致.dll
与pluginapi-x86-ansi.lib
和pluginapi-x86-unicode.lib
但结果是一样的...