Mar*_*ett 11 c++ unicode winapi qt visual-studio
因此,进入新千年我改写了我的c ++代码:
int main(int argc, wchar_t **argv)
Run Code Online (Sandbox Code Playgroud)
如果使用Unicode或MBCS选项构建,那么当使用命令行arg运行应用程序时,直接或通过dbl-click传递给argv []的文件名是不可读的=在某些混合的中文字体中.
感谢您的评论 - 我将尝试在这里总结(z)e为搜索引擎.
wmain(int argc,char **argv) 只能用于命令行(子系统:控制台)应用程序
int winMain(int argc, wchar_t **argv)适用于gui(子系统:windows),但gui用它自己的入口点替换它.在Qt的情况下,这不起作用
qtmaind.lib(qtmain_win.obj):错误LNK2019:函数_WinMain @ 16中引用了未解析的外部符号_main
解决方案似乎是使用main(int arc,char **argv)
或main(int argc,wchar_t**argv)忽略argv.然后用argv或NULL调用QApplication - 由于Qt内部调用GetCommandLine(),因此忽略argv.
然后使用app.arguments返回已解析的参数.
然后,如果需要,可以使用Qt的字符串函数将它们转换回wchar.
QApplication app(argc, (char**)argv); or QApplication app(argc,NULL);
QStringList args = app.arguments();
Run Code Online (Sandbox Code Playgroud)
对不起,我最初没有标记这个Qt,因为我认为这不相关.
如果有人想编辑它还包括如何在MFC中执行此操作 - 请执行此操作.
Mar*_*som 18
您需要命名您的入口点wmain:http://msdn.microsoft.com/en-us/library/fzc2cy7w(VS.80).aspx
尝试这个:
#include <tchar.h>
int _tmain( int argc, TCHAR **argv )
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
_tmain定义为wmain使用 UNICODE 选项main编译时和使用 MBCS 选项编译时。
| 归档时间: |
|
| 查看次数: |
15864 次 |
| 最近记录: |