如何在C#中为DLL导入指定正确的封送处理

时间:2013-04-24 21:53:00

标签: c dll pinvoke marshalling dllimport

我正在使用DLL Import来使用C dll中的某些功能。该功能的签名是

int dllfunction(myfile **fptr, const char *filename, int *status);

下面的行中有哪些编组代码,以便我可以访问该功能?

[DllImport("name.dll")]
public static extern int dllfunction(??);

我试过了

[DllImport("name.dll")]
public static extern int dllfunction(
    IntPtr fptr,
    [In] ref char filename, 
    ref int status);

看看MSDN还没有帮助。如果你能够给出回复,你是否也会介意给出一个调用的例子(例如,如果需要强制转换)。

感谢您的光临!

降压

1 个答案:

答案 0 :(得分:2)

这是发布小信息的最佳猜测:

[DllImport("name.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int dllfunction(
    out IntPtr fptr, 
    string filename, 
    ref int status
);