我需要从C#调用非托管DLL的本机方法。 DLL源代码当然不可用(由“第三方”提供)。如何在C#中实现回调从具有多个参数的本机DLL方法检索返回码
机DLL方法应该接受两个参数,并返回一个(本机)的整数代码:
MyDLLNativeMethod(字符串文件名,INT返回码)
机DLL方法的第一个参数是一个字符串(文件名)&秒必须是一个“参考”来收集执行后的返回码。我对如何获得返回码感到困惑。 DLL调用正常工作,根据第一个参数生成预期的文件。
我应该如何实现所需的回调以对检索到的不同返回代码值执行操作?
// ~~~~~~~~~~~~~~~~~~~~
// Main entry point
// ~~~~~~~~~~~~~~~~~~~~
namespace MyProject
{
class Program
{
static void Main(string[] args)
{
MyDLLCaller _dllcaller = new MyDLLCaller();
_dllcaller.MyDLLNativeMethod("test_file.txt");
}
}
}
// ~~~~~~~~~~~~~~~~~~~~
// DLL calling class
// ~~~~~~~~~~~~~~~~~~~~
namespace MyProject
{
class MyDLLCaller
{
// DLL Loading
[DllImport(@"C:\test\mydll.dll")]
public static extern int MyDLLNativeMethod(string _filename);
// Native DLL method pseudo code :
// MyDLLNativeMethod(string filename, int returncode).
}
}
在此先感谢
它是否适用于您?您想将答案标记为已接受吗? – mortb