【发布时间】:2011-02-01 16:36:52
【问题描述】:
我正在尝试为 windows mobile(windows phone 7 之前的版本)构建一个示例项目。我在 VS 2008 中创建了一个 Win32 设备项目,并安装了 windows mobile SDK。我用以下示例代码替换了主函数存根,但由于两个链接器错误而无法构建。我猜这是某种配置错误或构建设置错误,但我不知道去哪里找。我构建的 C++ 项目很少,而且我不熟悉不同的选项。任何人都可以提出任何可能有帮助的建议吗?
取自:Auto-launching CF apps with the HKLM\Init Registry Key
extern "C" DWORD WaitForAPIReady(DWORD, DWORD);
extern "C" BOOL IsAPIReady(DWORD hAPI);
int _tmain(int argc, _TCHAR* argv[])
{
// quick sanity check - HKLM\Init will send in our order number
if(argc == 0) return 0;
BOOL success = FALSE;
// wait for window manager - that should be enough for us
#if _WIN32_WCE > 0x500
success = (WaitForAPIReady(SH_WMGR, 5000) == WAIT_OBJECT_0);
#else
int i = 0;
while((! IsAPIReady(SH_WMGR)) && (i++ < 50))
{
Sleep(100);
}
success = (i < 50);
#endif
if(success)
{
int launchCode = _ttoi(argv[1]);
SignalStarted(launchCode);
}
else
{
RETAILMSG(TRUE, (_T("CFInitGate timed out - SH_WMGR was not ready after 5 seconds\r\n")));
}
return 0;
}
我看到的链接器错误:
- 错误 1 错误 LNK2019:函数 wmain LaunchGate.obj LaunchGate 中引用的外部符号 WaitForAPIReady 无法解析
- 错误 2 致命错误 LNK1120:1 个未解决的外部 Windows Mobile 6 标准 SDK LaunchGate
根据 WaitForAPIReady 文档,我需要包含 kfuncs.h,根据 IsAPIReady 文档,我应该使用 windev.h。当我 #include "kfuncs.h" 我没有语法错误,但链接器仍然抱怨。当我#include "windev.h" 找不到文件时。
有什么想法吗? 谢谢, 布莱恩
【问题讨论】:
标签: c++ windows-mobile compact-framework linker