2006-11-29

C#程序实现动态调用DLL的研究

来源: 本站 作者:佚名 评论 0 条
 

[DllImport("user32.dll", EntryPoint="MessageBoxA")]

static extern int MsgBox(int hWnd, string msg, string caption, int type);

然后在“B1_Click”方法体内添加如下代码,以调用方法“MsgBox”:

MsgBox(0," 这就是用 DllImport 调用 DLL 弹出的提示框哦! "," 挑战杯 ",0x30);

6. 按“F5运行该程序,并点击按钮B1,便弹出如下提示框:

(二) 动态装载、调用DLL中的非托管函数

在上面已经说明了如何用DllImport调用DLL中的非托管函数,但是这个是全局的函数,假若DLL中的非托管函数有一个静态变量S,每次调用这个函数的时候,静态变量S就自动加1。结果,当需要重新计数时,就不能得出想要的结果。下面将用例子说明:

1. DLL的创建

1) 启动Visual C 6.0

2) 新建一个“Win32 Dynamic-Link Library”工程,工程名称为“Count”;

3) 在“Dll kind”选择界面中选择“A simple dll project”;

4) 打开Count.cpp,添加如下代码:

// 导出函数,使用“ _stdcall ” 标准调用

extern "C" _declspec(dllexport)int _stdcall count(int init);

int _stdcall count(int init)

{//count 函数,使用参数 init 初始化静态的整形变量 S ,并使 S 自加 1 后返回该值

static int S=init;

S ;

return S;

}

5) 按“F7进行编译,得到Count.dll(在工程目录下的Debug文件夹中)。

2.
共9页: 上一页 [1] [2] [3] 4 [5] [6] [7] [8] [9] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:运用加密技术保护Java源代码  
下一篇:Java学习的30个目标
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号