问题描述
大家好,我是做C#的,项目用到一个C++的DLL,但是一直调用不到这个DLL的方法,后来听说这个DLL要加上_declspec,但有没有DLL的源码和lib,那我要怎么给它加?好像是要新建一个DLL,再调用原来的DLL,是吗,?怎么实现。更多0
解决方案
解决方案二:
dllimport看看好不好用
解决方案三:
DLLImport加载这个dll然后重新生命他里面的方法,但是不实现然后调用
解决方案四:
引用楼主illos的回复:
大家好,我是做C#的,项目用到一个C++的DLL,但是一直调用不到这个DLL的方法,后来听说这个DLL要加上_declspec,但有没有DLL的源码和lib,那我要怎么给它加?好像是要新建一个DLL,再调用原来的DLL,是吗,?怎么实现。更多0
有dll的.h文件就够了对应结构体和函数,使用DllImport就可以但有个前提,这个C++的Dll必须依据定义了__declspec(dllexport)以纯c的方式提供,如果是类,那是没办法直接调用的
解决方案五:
3楼+1啊必须先区分dll中是以C++的类为接口提供的,还是以标准的C方式提供。1.如果是C的方式,那就在C#里定同样的结构体、方法等,通过dllimport的方式直接定义就好。2.如果是C++类的方式,那就不行了,用C++再写一个dll,在这个dll里调用,然后以简单的数据类型和C的方式导出函数,再使用1的办法去调用。可以使用DependencyWalker这个软件看看你的dll是不是标准的C方式导出
时间: 2024-11-13 06:44:39