C程序中的C dll
发布时间:2020-12-16 10:38:23 所属栏目:百科 来源:网络整理
导读:我想用C代码创建一个dll库,并在C程序中使用它. 我只想导出一个函数: GLboolean load_obj (const char *filename,GLuint object_list); 来自库的头文件: #ifndef __OBJ__H__#define __OBJ__H__#include windows.h #include GL/gl.h#include GL/glext.h#incl
我想用C代码创建一个dll库,并在C程序中使用它.
我只想导出一个函数: GLboolean load_obj (const char *filename,GLuint &object_list); 来自库的头文件: #ifndef __OBJ__H__ #define __OBJ__H__ #include <windows.h> #include <GL/gl.h> #include <GL/glext.h> #include <GL/glu.h> #include <GL/glut.h> #if defined DLL_EXPORT #define DECLDIR __declspec(dllexport) #else #define DECLDIR __declspec(dllimport) #endif extern "C" GLboolean load_obj (const char *filename,GLuint &object_list); #endif // __3DS__H__ 在.cpp(在库项目中)函数也声明为: extern "C" GLboolean load_obj (const char *filename,GLuint &object_list) { code... } 文件.lib添加在VS项目选项(链接器/输入/附加依赖项)中. .dll位于.exe所在的文件夹中. Error 1 error C2059: syntax error : 'string' 它是关于头文件中的“extern”C“”部分. 我试图将头文件更改为: extern GLboolean load_obj (const char *filename,GLuint &object_list); 然后 Error 1 error C2143: syntax error : missing ')' before '&' Error 2 error C2143: syntax error : missing '{' before '&' Error 3 error C2059: syntax error : '&' Error 4 error C2059: syntax error : ')' 甚至当我改变&到*出现: Error 6 error LNK2019: unresolved external symbol _load_obj referenced in function _main main.obj 我不知道为什么这是错的. .lib .h和.dll已正确添加. 解决方法
参数“GLuint& object_list”表示“在此处传递对GLuint的引用”. C没有参考.请改用指针.
// declaration extern "C" GLboolean load_obj (const char *filename,GLuint *object_list); // definition GLboolean load_obj (const char *filename,GLuint *object_list) { code... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |