在 MFC C++ App 中实现外部 WINAPI 调用

Posted

技术标签:

【中文标题】在 MFC C++ App 中实现外部 WINAPI 调用【英文标题】:Implementing extern WINAPI call in MFC C++ App 【发布时间】:2015-11-11 16:16:40 【问题描述】:

我正在使用 Windows Form App C++。 我必须使用一些具有

的头文件
HRESULT extern WINAPI StartUp ( DWORD dwVRequired, LPVERSION lpVersion);

我必须在 Form1.h

中执行此方法
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) 
    APPVERSION version;
    HRESULT result = APPStartUp(APP_VERSIONS, &version);

但是我得到这样的编译错误

错误 1 ​​错误 LNK2028:未解析的令牌 (0A000025) "extern "C" long __stdcall APPStartUp(unsigned long,struct _version *)" (?WFSStartUp@@$$J18YGJKPAU_wfsversion@@@Z) 在函数中引用 “私人:无效__clrcall MyAppPresenter::Form1::Form1_Load(类 System::Object ^,类 System::EventArgs ^)" (?Form1_Load@Form1@MyAppPresenter@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) C:\Projects\MyAppPresenter\MyAppPresenter\MyAppPresenter.obj MyAppPresenter

我认为这与 MSVS2010 C++ Console Code Ported to MSVS2010 C++ GUI is Failing. Why?

但是怎么做呢? 任何线索如何解决?

【问题讨论】:

你需要链接库(.lib文件),其中实现了未解析的功能。 What is an undefined reference/unresolved external symbol error and how do I fix it?的可能重复 【参考方案1】:

查看了控制台C++项目,发现*.vsxproj

<ItemGroup>
    <Library Include="C:\Program Files\Common Files\GCFApp\lib\msmanager.lib" />
</ItemGroup>

所以我只是手动将此代码添加到 Windows Form C++ 项目文件中,现在它可以工作了。

无论如何,我不知道如何使用 VS 2010 的 GUI 添加它。

【讨论】:

以上是关于在 MFC C++ App 中实现外部 WINAPI 调用的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中实现断言检查的最佳方法是啥?

在C++的MFC工具栏按钮中实现改变单文档字体大小的方法

如何在 C++ 中实现这个数据结构

在 MFC 应用程序中实现 IServiceProvider

如何在 Win32 窗口中实现 MFC 资源?

如何在 mfc CListCtrl 中实现简单的复制/粘贴功能?