gpt4 book ai didi

c++ - 无法为 Windows Mobile 构建 C++ 项目

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:35:41 24 4
gpt4 key购买 nike

我正在尝试为 Windows Mobile(Windows Phone 7 之前的版本)构建示例项目。我在 VS 2008 中创建了一个 Win32 设备项目,并且安装了 Windows Mobile SDK。我用以下示例代码替换了主函数 stub ,但它无法构建并出现两个链接器错误。我猜这是某种配置错误或build设置错误,但我不知道去哪里查看。我构建的 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 ​​error LNK2019:未解析的外部符号 WaitForAPIReady 在函数 wmain LaunchGate.obj LaunchGate 中引用
  • 错误 2 fatal error LNK1120:1 Unresolved external Windows Mobile 6 标准 SDK LaunchGate

根据 WaitForAPIReady 文档,我需要包含 kfuncs.h,根据 IsAPIReady 文档,我应该使用 windev.h。当我 #include "kfuncs.h" 我没有语法错误,但链接器仍然提示。当我 #include "windev.h" 我找不到文件。

有什么想法吗?谢谢,布赖恩

最佳答案

不要将它们声明为 extern "C"。如此声明:

extern WINAPI DWORD WaitForAPIReady(DWORD, DWORD);
extern WINAPI BOOL IsAPIReady(DWORD hAPI);

这是不同的调用约定 - stdcall 与 cdecl,因此具有不同的名称修改规则。

关于c++ - 无法为 Windows Mobile 构建 C++ 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4865252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com