C++ char* 作为参数 和messagebox的问题
大家好,我用c++在cpp文件里面有一个函数Hello,有参数char*say;形式如下MT4_EXPFUNCchar*__stdcallHello(char*say){...
大家好,我用c++在cpp文件里面有一个函数Hello,有参数char* say;形式如下
MT4_EXPFUNC char* __stdcall Hello(char* say)
{
MessageBox(NULL,say,"Here is the title for the messagebox",NULL);
return say;
}
我把这个编译生成dll供外部语言(mql4语言)调用,存在2个问题:
1:如果调用格式为Hello("test_hello_function");则弹出框只会弹出字符串的第一个字符即"t"也就是"test_hello_function"的第一个字母;
2:如果把参数换成中文,则会是乱码即
Hello("中文测试"),则弹出乱码
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
请问大家如何解决?我没有学过c++,一直做web编程;所以还望您能热心给出详细一点的答案,非常感谢! 展开
MT4_EXPFUNC char* __stdcall Hello(char* say)
{
MessageBox(NULL,say,"Here is the title for the messagebox",NULL);
return say;
}
我把这个编译生成dll供外部语言(mql4语言)调用,存在2个问题:
1:如果调用格式为Hello("test_hello_function");则弹出框只会弹出字符串的第一个字符即"t"也就是"test_hello_function"的第一个字母;
2:如果把参数换成中文,则会是乱码即
Hello("中文测试"),则弹出乱码
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
请问大家如何解决?我没有学过c++,一直做web编程;所以还望您能热心给出详细一点的答案,非常感谢! 展开
2个回答
展开全部
试试这样:
MT4_EXPFUNC LPCTSTR __stdcall Hello(LPCTSTR say)
{
MessageBox(NULL,TEXT(say),TEXT("Here is the title for the messagebox"),MB_OK);
return say;
}
MT4_EXPFUNC LPCTSTR __stdcall Hello(LPCTSTR say)
{
MessageBox(NULL,TEXT(say),TEXT("Here is the title for the messagebox"),MB_OK);
return say;
}
更多追问追答
追答
首先TEXT是为了从ANSI码转化为Unicode码,然后LPCSTR相当于const char *,如果你加上const修饰就对了
2015-05-14
展开全部
编码 问题
将编译器的默认编码设为Unicode即可
将编译器的默认编码设为Unicode即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询