0

因此,我的 Visual C++ 程序出现此错误,该程序使用按钮连接到相机、录制视频并保存视频,然后断开与相机的连接。为了解决这个问题,我在 c/c++ 属性的命令行中输入 /clr。错误是

1>c:\users\taycm_000\documents\visual studio 2010\projects\test-new\test\stdafx.h(28): error C3641: 'handleObjectEvent' : invalid calling convention '__stdcall ' for function compiled with /clr:pure or /clr:safe
1>c:\users\taycm_000\documents\visual studio 2010\projects\test-new\test\stdafx.h(32): error C3641: 'handlePropertyEvent' : invalid calling convention '__stdcall ' for function compiled with /clr:pure or /clr:safe
1>c:\users\taycm_000\documents\visual studio 2010\projects\test-new\test\stdafx.h(37): error C3641: 'handleStateEvent' : invalid calling convention '__stdcall ' for function compiled with /clr:pure or /clr:safe

有没有办法在不使用 /clr 的情况下解决这些错误?

4

1 回答 1

1

当您说“将所有代码编译为 IL”时,C++/CLI 编译器并不是很激动,它会遇到一个函数声明,该声明显然是一个编译为本机代码的函数。不能两者兼而有之。

一定要告诉它哪些头文件包含本机代码函数的声明。您可以即时来回切换。使用 pragma 很容易做到:

#pragma managed(push, off)
#include "foo.h"
#pragma managed(pop)
于 2013-04-14T18:22:13.280 回答