
然后在程序里面还要用代码引用一次!!
例如:
[DllImport("win32.dll")]
使用dllImport需要添加程序集using
System.Runtime.InteropServices
下面是一个简单的例子:
public
class
ConnectNet
{
///
///
该类主要用于检测网络是否连通,调用系统自带的API函数wininet.dll
///
使用该dll内的InternetGetConnectedState方法
///
///
方法参数一,表示网络连接状态
///
方法参数2,保留参数
///
state
,类型为Bool
[DllImport("wininet.dll")]
private
extern
static
bool
InternetGetConnectedState(out
int
connnectionDescription,
int
reservedValue)
public
bool
IsConnected()
{
int
i
=
0
bool
state
=
InternetGetConnectedState(out
i,
0)
return
state
}
}
在安装包工程点右键选择【视图】->【注册表】,再打开的窗口里"HKEY_LOCAL_MACHINE"->"Software"里新建“键”,然后将新建项命名为dll的名字,并添加值(1)、ILMerge。这个工具是MS官方提供的,在 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17630 可以下载得到。这个工具能够把几个可执行文件(exe或者dll)打包集成进一个可执行文件中,具体使用方法网上很多,这里不再赘述。值得说明的是,我尝试写了一个.bat批处理来merge,效果非常好。利用pause指令还能随时暂停ILMerge运行过程,可以看到merge失败时是哪里的问题。
(2)、嵌入DLL作为资源。
推荐使用这种方式。这个方法是CLR via C#的作者发明的(貌似,反正我是从他那里学的),原帖的地址http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)