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. 用DllImport调用DLL中的count函数
1) 打开项目“Tzb”,向“Form1”窗体中添加一个按钮。
2) 改变按钮的属性:Name为 “B2”,Text为 “用DllImport调用DLL中count函数”,并将按钮B1调整到适当大小,移到适当位置。
3) 打开“Form1.cs”代码视图,使用关键字 static 和 extern 声明方法“count”,并使其具有来自 Count.dll 的导出函数count的实现,代码如下:
[DllImport("Count.dll")]
static extern int count(int init);
4) 在“Form1.cs[设计]”视图中双击按钮B2,在“B2_Click”方法体内添加如下代码:
MessageBox.Show(" 用 DllImport 调用 DLL 中的 count 函数, \n 传入的实参为 0 ,得到的结果是: "+count(0).ToString()," 挑战杯 ");
MessageBox.Show(" 用 DllImport 调用 DLL 中的 count 函数, \n 传入的实参为 10 ,得到的结果是: "+count(10).ToString()+"\n 结果可不是想要的 11 哦!!! "," 挑战杯 ");
MessageBox.Show(" 所得结果表明: \n 用 DllImport 调用 DLL 中的非托管 \n 函数是全局的、静态的函数!!! "," 挑战杯 ");
5) 把Count.dll复制到项目“Tzb”的bin\Debug文件夹中,按“F5”运行该程序,并点击按钮B2,便弹出如下三个提示框:
点击加载更多评论>>