托管调用非托管的DLL

来源:互联网 发布:scrollview 数据重复 编辑:程序博客网 时间:2024/05/08 10:09

[DllImport("CreateNewProcess.dll",CharSet=CharSet.Unicode)]
public static extern bool _CreateProcess([MarshalAs(UnmanagedType.LPWStr)]string FullPath); 

以上是定义入口,直接调用即可

string str;调用 _CreateProcess(str);

还有,如果是用自定义的数据类型,那可用Marshal.StructToPtr()在非托管地区申请一段内存,再把个针指传进去

如:mystruct ms = new mystruct();
        nt bufferSize = Marshal.SizeOf(ms);
        IntPtr buffPtr = Marshal.AllocHGlobal(bufferSize);
        Marshal.StructureToPtr(buffer, buffPtr, true);

   非托管调用 callXX(buffPtr)         结构可以,当然其它也是可以的

原创粉丝点击