首页 > 解决方案 > 使用自定义类型、文件和指针所需的 DLLImport 方法签名进行 C++ 调用

问题描述

在 C# 中使用 DLLImport 需要调用 C++ 自定义类型变量和指针。

自定义类型:

 typedef unsigned char UN_Char;
 typedef enum { Valid = 0, Invalid = 1, Unknown = -999 } AppResponseCode; 

在 SomeAPI.C 中调用

 static AppResponseCode SomeFunction(UN_Char ** vUC1PtrPtr,size_t * vSize1Ptr, UN_Char * vUC2Ptr,size_t vSize2, FILE *  inputFile, char * vcharPtr)

现在我需要从 C# 调用 C++ 函数。

一旦我尝试创建引用,它就会失败并显示消息

无法添加对“.....\SomeApi.DLL”的引用。请确保该文件是可访问的,并且它是有效的程序集或 COM 组件

所以我使用其他途径导入 DLL 使用 DLLImport 但在这里我没有调用 C++ 函数的签名

[DllImport("SomeAPI.dll", CharSet = CharSet.Unicode)]
public static extern ?AppResponseCode? SomeFunction( ?????emphasized text ) ;

有人可以帮我识别功能签名吗?

标签: c#c++pointersmethodsdllimport

解决方案


推荐阅读