- 论坛徽章:
- 0
|
问题找到了:
原来编译ACE库时将“是否将wchar设置为内置类型”置为“是”。
以下是ACE源码:
# if defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
int ACE_Main_Base::run (int argc, ACE_TCHAR *argv[])
{
return this->run_i (argc, argv);
}
ACE_Export int
ace_os_wmain_i (ACE_Main_Base &mbase, int argc, ACE_TCHAR *argv[]) /* user's entry point, e.g., main */
{
ACE_MAIN_OBJECT_MANAGER
return mbase.run (argc, argv); /* what the user calls "main" */
}
# else /* ! (ACE_WIN32 && ACE_USES_WCHAR) */
ACE_Main_Base::ACE_Main_Base ()
{
ACE::init ();
}
ACE_Main_Base::~ACE_Main_Base ()
{
ACE::fini ();
}
int ACE_Main_Base::run (int argc, char *argv[])
{
return this->run_i (argc, argv);
}
ACE_Export int
ace_os_main_i (ACE_Main_Base &mbase, int argc, char *argv[]) /* user's entry point, e.g., main */
{
ACE_MAIN_OBJECT_MANAGER
return mbase.run (argc, argv); /* what the user calls "main" */
}
# endif /* ACE_WIN32 && ACE_USES_WCHAR */
如果设置了将wchar置为内置类型,程序入口应该使用wmain,将代码中的main修改为wmain就可以了。
说实话,详细的原因自己还想不太明白,楼上的几位大哥能不能解释一下。
多谢几位~~~ |
|