如何导入定制C++;通过DLL将数据类型导入C#应用程序 我有一个C语言WiFrm应用程序,已经编写了C++应用程序。长话短说,我希望我的C语言应用程序从C++ DLL调用不同的方法,但是C++函数需要非原始类型的参数,而我的C语言应用程序不支持这些参数。
比如说,如何导入定制C++;通过DLL将数据类型导入C#应用程序 我有一个C语言WiFrm应用程序,已经编写了C++应用程序。长话短说,我希望我的C语言应用程序从C++ DLL调用不同的方法,但是C++函数需要非原始类型的参数,而我的C语言应用程序不支持这些参数。,c#,c++,dll,interop,custom-data-type,C#,C++,Dll,Interop,Custom Data Type,比如说, public: void demoFunction(DemoType param1, TypeDemo param2); P.在C++应用程序中存在的类型和类型。 那么在我的C#应用程序中,如何准确地调用这个函数呢?有没有办法让我的C#应用程序识别这些类型 我知道我可以从dll导入函数: [DllImport("Demo.dll", CallingConvention = CallingConvention.Cdecl)] public static extern v
public:
void demoFunction(DemoType param1, TypeDemo param2);
<> P.在C++应用程序中存在的类型和类型。
那么在我的C#应用程序中,如何准确地调用这个函数呢?有没有办法让我的C#应用程序识别这些类型
我知道我可以从dll导入函数:
[DllImport("Demo.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void demoFunction(?, ?);
代码片段中的“?”符号是我很难得到的
我认为,如果我能够将这些数据类型导入到我的C#应用程序中,我就能够在调用函数时强制转换这些值。例如:(DemoType)值
,其中值的类型为int
我不能改变参数的类型,它们必须保持这种状态。可能吗
谢谢所有的帮助。
[dLimPult]适合C语言接口,不能创建C++对象。只有C++编译器知道如何做到这一点。如果你不能修改现有的API,那么你需要一个C++/CLI项目。也许你可以先用C++来包装C++库,但是你的自定义类型是什么?简单结构还是类?@AndreaRossini两者都有,据我所知,我需要在我的'DllImport'语句上面声明结构和类,并赋予它相同的属性。但听起来效率不高。