C#调用其它语言(例如C++)DLL文件中函数的方法摘要

 

有托管和非托管的概念没仔细看,接下来记录的引用Dll文件指的是无法通过VS自动完成添加引用的情况,可以使用如下方法:

步骤一:

打开“Visual Studio Tools”的“命令提示符”工具

使用dumpbin -exports命令查看DLL文件中的函数(或者入口)是否与自己需要的相符,例如:

dumpbin -exports D:\test\gregn45.dll

查看所有dumpbin对应的命令直接在“命令提示符”工具输入:

dumpbin

然后按enter即可。

步骤二:(如果上一步正确,在进行下一步)

在C#类中使用“DllImport”来引入DLL中的函数,例如:

        [DllImport("MTKDll.dll")]
        public static extern int JA_DestroyDevice();

每一个函数都要使用一次“DllImport”,如果运行提示“无法找到模块”则将Dll文件放入程序bin\Debug文件夹下即可

如果提示“无法找到函数入口点”,则需要在使用DllImprot是指定“EntryPoint”,具体值一“步骤一”得到的函数名为准

 

 备注:相关优秀链接:

使用dumpbin查看函数的__stdcall调用名

DLL/EXE查看工具Dumpbin

C#dllimport的使用

C#与C++之间类型的对应

C#中的API是不是Win32API?(这个回答的底部有一个简单的使用,很明了)

c#调用C++的DLL找不到入口点

 

 

 

posted on 2014-01-16 16:42  毋忆典藏  阅读(320)  评论(0编辑  收藏  举报