托管代码如何调用非托管代码(c sharp如何调用c++代码)?
两种常用的做法:
下载:
http://download.microsoft.com/download/f/2/7/f279e71e-efb0-4155-873d-5554a0608523/CLRInsideOut2007_01.exe
1. COM interop
具体操作:
a. 用atl写com服务程序
b. 使用Tlbimp将atl写的com程序转换成 COM DLL
用如下命令:
tlbimp 你写的com.dll
tlbimp是 .NET Framework SDK中附带的类型库导入程序。用这个命令即是把生成一个非托管com dll的托管包装。
c. 托管客户端非常简单
直接new一下,然后调用对应的方法即可。
2. P/Invoke
a. 在托管客户端增加一条 DllImport语句和一个方法的调用。
介绍一个P/Invoke网站,http://pinvoke.net/
这个网站主要是一个wiki,允许开发者发现,编辑,增加PInvoke的签名,用户自定义类型和从托管代码(指c#和VB.net开发语言)访问win32和其他非托管api的信息。
世界各地的.Net开发者可以很容易分享自己有价值的东西给社区,