转自:
https://www.cnblogs.com/xiesong/p/7243397.html
有时会遇到dll在系统中不存在,需要程序自己去注册所需的dll文件。
注册dll 需要用到regsvr32命令,其用法为:
"regsvr32 [/s] [/n] [/u] [/i[:cmdline]] dllname”。其中dllname为dll文件名
参数有如下意义:
/u——反注册控件
/s——不管注册成功与否,均不显示提示框
/c——控制台输出
/i——跳过控件的选项进行安装(与注册不同)
/n——不注册控件,此选项必须与/i选项一起使用
分享代码如下:
private bool RegisterDll()
bool result = true;
string dllPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "XXX.dll");//获得要注册的dll的物理路径
if (!File.Exists(dllPath))
Loger.Write(string.Format("“{0}”目录下无“XXX.dll”文件!", AppDomain.CurrentDomain.BaseDirectory));
return false;
//拼接命令参数
string startArgs = string.Format("/s \"{0}\"", dllPath);
Process p = new Process();//创建一个新进程,以执行注册动作
p.StartInfo.FileName = "regsvr32";
p.StartInfo.Arguments = startArgs;
//以管理员权限注册dll文件
WindowsIdentity winIdentity = WindowsIdentity.GetCurrent(); //引用命名空间 System.Security.Principal
WindowsPrincipal winPrincipal = new WindowsPrincipal(winIdentity);
if (!winPrincipal.IsInRole(WindowsBuiltInRole.Administrator))
p.StartInfo.Verb = "runas";//管理员权限运行
p.Start();
p.WaitForExit();
p.Close();
p.Dispose();
catch (Exception ex)
result = false; //记录日志,抛出异常
return result;
转自:https://www.cnblogs.com/xiesong/p/7243397.html有时会遇到dll在系统中不存在,需要程序自己去注册所需的dll文件。注册dll 需要用到regsvr32命令,其用法为:"regsvr32 [/s] [/n][/u] [/i[:cmdline]]dllname”。其中dllname为dll文件名参数有如下意义:/u——反注册控件/s——不管注册成功与否,均不显示提示框/c——控制台输出/i——跳过控件的选项进行安装(与注册不同)/n—..
SwfDotNet是C#编写的,这是个特别好的读写Swf文件的库。本文讲述了在C++项目中,怎么让C++调用C#的DLL动态链接库文件。
具体的实现步骤如下:
一、创建C# DLL,需要指定应用类型为“类库”,代码:
namespace CSLib
public class Class1
private string name;
public string Name
return name;
name = "Your Name:
方法如下:
1、 项目右键选择“属性”;
2、 添加资源文件:在属性设置界面选择“资源”选项卡,点击“添加现有文件”,选择需嵌入的dll文件;添加资源后dll将拷贝到项目文件夹下的“Resources”子文件夹下;
3、 添加上一步添加的dll文件;
4、 Dll属性复制本地设置为False;
5、 在应用程序的主入口点添加一下代码:
本文实例讲述了C#生成DLL文件的方法。分享给大家供大家参考。具体分析如下:
Visual C#生成DLL文件
VisualC、Delphi或者VB等编程语言来编写的DLL文件,在编译完成以后,产生DLL文件已经是一个可以直接供计算机使用的二进制文件。但用Visual C#编译器生成的受管代码虽然也是二进制文件,但不是可以直接供计算机使用的原始代码,实质上是一种中间语言(IL)代码,需要经过”下一代窗口服务”( Next Generation Windows Services,简写为NGWS ) runtime的即时编译器(即JIT)进行编译。
用Visual C#生成的DLL文件已经和以前的
注册表项目
[HKEY_CLASSES_ROOT\dllfile\shell\Unregister]"Command"="regsvr32 %1 /u"[HKEY_CLASSES_ROOT\dllfile\shell\Register]"Command"="regsvr32 %1"当我们需要注册或者反注册dll时,只要在该dll文件上按下鼠标右键即可!
反注册...
没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)
查找原因: Interop.WMPLib.dll AxInterop.WMPLib.dll
程序内含private AxAPlayer3Lib.AxPlayer axPlayer;
最初出现问题分析思路:1.先注册两个动态库,注册失败:
两个动态库是不能直接注册。
c# 注册模块Dll 直接引用 调用即可,注册机可以找我要QQ:jasonto@qq.com
使用方法:
private void Form1_Load(object sender, EventArgs e)
Reg abc = new Reg("test.exe");//test.exe为应用程序名称;
abc.WindowState = FormWindowState.Minimized;
if (abc.ShowDialog() == DialogResult.OK)
this.Text = "已注册版本";
Application.Exit();
catch (Exception)
MessageBox.Show("重要dll,丢失!");
Application.Exit();