c++ - dll导入c++/MFC的编译器错误

标签 c++ mfc clr dllimport

我有一个 MFC 项目,它导入一个 C 类型的 DLL 以供使用。当我的项目在 V 6.0 中时,这段代码运行良好,但在将代码转移到 v2010 并向项目添加一些 .NET 代码(使用\clr)后,我的那部分代码开始抛出有关缺少“)”和“的编译器错误;"。我整个上午都在研究,但一直无法想出解决方案。谁能帮帮我?

下面是抛出编译错误的代码行部分:

 #ifdef __cplusplus
  extern "C" __declspec(dllimport) void _stdcall KILLIT();
  extern "C" __declspec(dllimport) void _stdcall MAINDLL(char *PATH,int PATHLEN,char      *SUBDIR,int SUBDIRLEN, char *NAME,
int NAMELEN,char *HOMEDIR,int HOMEDIRLEN,char *ARCHDIR,int ARCHDIRLEN, int *FUN,int   *VERSION,int *BUS,int *PJMPV,
int *NFLAG,int *RETERROR);

#endif

这些是我得到的编译器错误:

DSAANA.cpp(32): error C2143: syntax error : missing ')' before 'constant'
>DSAANA.cpp(32): error C2143: syntax error : missing ';' before 'constant'
>DSAANA.cpp(34): error C2059: syntax error : ')'

如果能得到任何帮助,我将不胜感激

谢谢 罗比

最佳答案

如果您为每一行添加行号,这样我们就知道什么是什么,那将会很有帮助。可能是与其中一个 header 中的宏的名称冲突。对于您的函数声明,您可以删除变量名称并只使用变量类型。如果这修复了其中一个错误,请慢慢添加旧变量名,直到再次出现错误,然后您会发现冲突。

关于c++ - dll导入c++/MFC的编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11762225/

相关文章:

c++ - 使用 GoogleTest 测试读取文件

c++ - CScrollBar 拇指跟踪不起作用

c++ - 使用C++在打印机上打印pdf文件

.net - 充分了解 .NET 版本和向后兼容性

c# - JIT 或 CLR 中可能存在的错误

c++使用getline,输出在开头带有一个额外的空格

c++ - 常量正确性和硬件写入

C# 构造函数与显式调用存在歧义 - 错误 CS0012

c++ - CMFCStatusBar 双击事件

windows - 使用 mfc/win32 将我程序自己的窗口的一部分保存到位图文件