c++写的带类的dll怎么调用下面某个类下属的函数

c++写了一个test.dll,内部有几个类分别是class A class B class C
类A,B,C下面分别有一些函数func1,func2,func3.....
怎么调用某个类下面的函数
我用的dllimport,入口点entrypoint怎么写?

没有对应的,是用户自己建立的class,下面一堆的函数,比如a::func1,b::func2之类的
问题就在于,不知道entrypoint填什么好,我使用dependency工具去查这dll内部的函数,都是一堆问号开头的比如?a@func1@!@#$%这类的函数名,直接拷贝了填是可以但是会提示内存出错,怀疑是函数调用入口问题
不知道这类带有class的函数要怎么调用,以前用过都是直接import dll然后entrypoint写函数名就可以了,但是现在因为dll里面的函数都在每个类下面,就不知道entrypoint写啥好了

c++/cli最好的解决办法

吧这个类导出来,加上类的头文件,就可以使用 啊

C++需要导出的API,用extern "C"包起来,按C的方法编译的方法名称不会带上参数信息.
关于怎么在托管代码中写非托管方法的声明,建议多了解一点PInovke的知识.
需要示例可以参考:Pinvoke.Net

C++函数导出基本上都是用基础类型。很少用到类的。

原因是不同的编译器,对类的具体实现可以不同。由于布局的不同,C#并不能理解C++的类,甚至同是C++编译器,都会存在兼容的问题l。

在C#中调用C++类,不是说完全不可能,却是代价很高。不容易调试,不容易维护,得不偿失。最可行的做法是,只用
小蜜蜂论坛顶帖机基础类型来导出C函数(这也是大部分Win32 API的做法)。

发布了74 篇原创文章 · 获赞 0 · 访问量 3061

猜你喜欢

转载自blog.csdn.net/netyou/article/details/104771313