2013-05-14 57 views
2

我有一个头文件的C库。现在我想在C++中创建一个包装器,以便在.NET中使用它。当我包含库时,编译器会报告关于变量类型(DWORD,LPCSTR等)的语法错误。 总之,大概它认为,图书馆是C++而不是C.在C++中使用C库

我试图

extern "C"{ 

    #include "c_lib.h" 

} 

,但没有成功。我正在使用Visual Studio 2010,所以也许应该对项目设置进行更改。

任何帮助将不胜感激。

问候。

+1

'DWORD'和'LPCSTR'与C++无关。你可能会丢失一个头文件。 – 2013-05-14 13:57:49

+2

你打算用C++/CLR来包装吗?如果没有,为什么你不能只导入C函数签名? – crashmstr 2013-05-14 13:58:04

+8

你首先包含''吗? – 2013-05-14 13:58:07

回答

6

你需要包括<windows.h>,但我认为你做错了。您不需要创建一个C++包装来使用.NET库。您可以用C#直接调用所有需要调用的C函数DllImport

Using the DllImport Attribute

+0

感谢大家,我用空项目,所以windows.h不包括在内,也在我的情况C++包装不是最好的解决方案,所以我最终使用DLLImport指令。 – autodev101 2013-05-15 13:42:57