在程序中实现注册dll
来源:互联网 发布:华为西研所云计算部门 编辑:程序博客网 时间:2024/05/02 21:50
在程序中实现注册dll(如安装程序),有两种方法:
一.(摘自COM 组件设计与应用(七)编译、注册、调用 作者:杨老师 vckbase)
typedef HRESULT (WINAPI * FREG)();
TCHAR szWorkPath[ MAX_PATH ];
::GetCurrentDirectory( sizeof(szWorkPath), szWorkPath ); // 保存当前进程的工作目录
::SetCurrentDirectory( 组件目录 ); // 切换到组件的目录
HMODULE hDLL = ::LoadLibrary( 组件文件名 ); // 动态装载组件
if(hDLL)
{
FREG lpfunc = (FREG)::GetProcAddress( hDLL, _T("DllRegisterServer") ); // 取得注册函数指针
// 如果是反注册,可以取得"DllUnregisterServer"函数指针
if ( lpfunc ) lpfunc(); // 执行注册。这里为了简单,没有判断返回值
::FreeLibrary(hDLL);
}
::SetCurrentDirectory(szWorkPath); // 切换回原先的进程工作目录
上面的示例,在多数情况下可以简化掉切换工作目录的代码部分。但是,如果这个组件在装载的时候,它需要同时加载一些必须依赖的DLL时,有可能由于它自身程序的 BUG 导致无法正确定位。
二.调用shell函数ShellExecute:
CString strParam;
strParam.Format(_T("/s /"%s/""),strPath);
ShellExecute(this->m_hWnd,_T("open"),_T("regsvr32.exe"),strParam,_T(""),SW_HIDE);
- 在程序中实现注册dll
- 程序中注册dll
- 程序中注册dll
- 程序中注册dll
- C++程序注册Dll
- 在程序中注册ActiveX控件
- VB在程序中注册热键
- VC6 安装错误 javasign.dll 不能在系统中注册
- 如何在cmd中注册DLL和OCX控件
- 在win10中注册老的的DLL文件
- 在gac中添加dll程序集
- VB实现注册/反注册ActiveX Dll
- Delphi实现注册dll文件
- 在Windows中实现Java调用DLL
- 【regsvr32注册dll】关于在windows下注册dll
- MFC中注册DLL函数
- 在ATL DLL中实现在窗口中使用CDockablePane
- 在程序中注册ActiveX控件(.OCX)的函数
- C#与javascript中split用法不同
- 继承,接口和抽象类
- Win32 Thread API学习之Event Objects
- java输入输出
- hibernate使用sql-query心得
- 在程序中实现注册dll
- oracle语法
- Linux中链接库使用和实现
- 中国黑客自揭黑色产业链条:做病毒一定要低调
- oracle一千问
- 我的理想
- oracle完全卸载攻略
- 今天开始用blog
- 35岁前应该做好的十件事