2006-11-29

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

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

若要使用其它函数名,可以使用EntryPoint属性设置,如:

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

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

其它可选的 DllImportAttribute 属性:

CharSet 指示用在入口点中的字符集,如:CharSet=CharSet.Ansi

SetLastError 指示方法是否保留 Win32"上一错误",如:SetLastError=true

ExactSpelling 指示 EntryPoint 是否必须与指示的入口点的拼写完全匹配,如:ExactSpelling=false

PreserveSig指示方法的签名应当被保留还是被转换, 如:PreserveSig=true

CallingConvention指示入口点的调用约定, 如:CallingConvention=CallingConvention.Winapi

此外,关于“数据封送处理”及“封送数字和逻辑标量”请参阅其它一些文章[2]

C#例子:

1. 启动VS.NET,新建一个项目,项目名称为“Tzb”,模板为“Windows 应用程序”。

2. 在“工具箱”的“ Windows 窗体”项中双击“Button”项,向“Form1”窗体中添加一个按钮。

3. 改变按钮的属性:Name “B1”Text DllImport调用DLL弹出提示框,并将按钮B1调整到适当大小,移到适当位置。

4. 在类视图中双击“Form1”,打开“Form1cs”代码视图,在“namespace Tzb”上面输入“using System.Runtime.InteropServices;”,以导入该命名空间。

5. 在“Form1cs[设计]”视图中双击按钮B1,在“B1_Click”方法上面使用要害字 static extern 声明方法“MsgBox”,将 DllImport 属性附加到该方法,这里我们要使用的是“user32dll”中的“MessageBoxA”函数,具体代码如下:


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

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