在制作安装文件时文件的注册问题?(100分求解)
已经知道类库文件(*.tlb)所指向的动态链接库(*.dll),如何注册? 问题点数:100、回复次数:10Top
1 楼chaojibenben(笨笨)回复于 2002-05-23 10:55:46 得分 0
在制作安装文件时,包含类库文件(*.tlb)和它所指向的动态链接库(*.dll)文件,如何注册类库文件(*.tlb)和它所指向的动态链接库(*.dll)?Top
2 楼zhuwenzheng(卧薪尝胆)回复于 2002-05-23 11:06:41 得分 5
file groups->dll->self-registered->yesTop
3 楼chaojibenben(笨笨)回复于 2002-05-23 11:21:05 得分 0
我已经这么做了,但是安装完成后是没有注册。Top
4 楼zhuwenzheng(卧薪尝胆)回复于 2002-05-23 11:29:01 得分 5
可能你的DLL不能自注册Top
5 楼junguo(junguo)回复于 2002-05-23 11:29:09 得分 5
我的办法是把它们添加到Com+管理器中去!Top
6 楼chaojibenben(笨笨)回复于 2002-05-23 11:38:40 得分 0
TO:junguo
How can I do that?Top
7 楼chaojibenben(笨笨)回复于 2002-05-23 11:47:11 得分 0
我的动态连接库和类库文件全部不能自注册的。
而我的应用程序还要使用这些文件,我不知道如何注册。Top
8 楼tianlinyi(笨蛋)回复于 2002-05-23 11:58:09 得分 5
:)Top
9 楼junguo(junguo)回复于 2002-05-23 11:59:28 得分 80
你的dll属于com的话,应该可以!
下面的代码,用vc做成正则dll后在installshield中调用。
记得把comadmin.dll导入你的程序中
#include "comadmin.h"
#include <comdef.h>
BOOL CAdComDllApp::CreteCollection(CString strCollName)
{
HRESULT hr;
hr = CoInitialize(NULL);
if ( FAILED( hr ) )
{
AfxMessageBox("install com failed!");
return hr;
}
objCom.CreateDispatch(TEXT("COMAdmin.COMAdminCatalog"));
ICatalogCollection objCat=objCom.GetCollection(TEXT("Applications"));
objCat.Populate();
ICatalogObject objObj=objCat.Add();
_variant_t vntName(strCollName);
VARIANT vntAppkey=objObj.GetKey();
objObj.SetValue(TEXT("Name"),vntName);
objCat.SaveChanges();
::CoUninitialize();
return TRUE;
}
BOOL CAdComDllApp::InserDll(CString strCollName, CString strDllPath)
{
HRESULT hr;
hr = CoInitialize(NULL);
if ( FAILED( hr ) )
{
AfxMessageBox("install com failed!");
return hr;
}
objCom.InstallComponent(strCollName,strDllPath,NULL,NULL);
::CoUninitialize();
return TRUE;
}
Top
10 楼junguo(junguo)回复于 2002-05-23 12:00:22 得分 0
导入dll的方法是!
开mfc classwizard,点击 Add class,选择From a type library选择c:\winnt\system32\com\comadmin.dll
Top




