有命名空间则引入命名空间,dll里面,是a命名空间,有一个b类,然后有一个无参数静态方法c
那么迟渣调用方法就是a.b.c()。
然后是启镇非托管dll
需要添加dll的名称,以及方法,也就是悄旦粗你所用到的dll的每个方法都需要添加一次,
[DllImport("msvcrt.dll")]
public static extern int puts(string c);
(1)编写程序时,你要包含(#include "什么.h") dll文件作者世备提供 的 头文件(.h文件) 。程序里,便和普通函数调用一样,去调用猛饥它的函数。
(2)程序编译时,你要链接 dll文件作者提供 的 (.lib文件) 库文件。
当然,你可以在源程序里把.lib 名字 写上,编译时自动去链接,例子:
#pragma comment (lib, "什么.lib")
(3)执行搜知毁时,要有 .dll 文件. 放在当前文件夹或系统文件夹里。
//dll#include <windows.h>
extern "C" //保持C语言文件
void _declspec ( dllexport ) tryProc() //定义函数
{
MessageBox(NULL,_T("a"),_T("a"),MB_OK)
}
-------------------------------------
//C#include <windows.h>
int main()
{
HMOUDLE dll 做液哗= LoadLibrary(/*DLL文件名*/)
if(dll != NULL)
{
埋肆 FARPROC try = GetProcAddress(dll,"tryProc")
if(try != NULL)
{
tryProc()//假如函数有返回值纯行,可以用try()得到返回值
/*_asm call tryProc*/
}
}
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)