我正在使用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)长“外部”“ C”
  函数中引用的__stdcall APPStartUp(unsigned long,struct _version *)“(?WFSStartUp @@ $$ J18YGJKPAU_wfsversion @@@ Z)
  “私有:void __clrcall MyAppPresenter :: Form1 :: Form1_Load(类
  System :: Object ^,class 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?

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

最佳答案

我检查了控制台C ++项目,发现* .vsxproj具有

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


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

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

关于c++ - 在MFC C++ App中实现外部WINAPI调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33654914/

10-13 07:04