如何加载 不写入注册表 的 com组件 ? 知道DLL path 以及 clsid. 我想加载 指定DLL的com组件。com组件不需要写入注册表。不知道如何实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 lz可以这样试试:首先你LoadLibrary("com.dll");调用com.dll中的DllGetClassObject导出函数,返回一个类厂的接口IClassFactory,然后调用该接口的CreateInstance方法,就可以返回你想要接口指针了。 那就当初普通dll来处理,LoadLibrary,然后DllGetClassObject() 获得对应的类厂等,这几个接口com的dll导出了的. 不要用COM,整套COM很复杂你可以自己实现一个轻量级的仿COM例如根据自己的需求实现:1、你自己的IUnknown接口,可以和MS的一样,只有3个方法,其实QueryInterface好像也可以不用2、通过一定的机制创建接口,可以用CLSID,或者直接用字符串或者其他代替这样你就可以自己想加载几个dll就加载几个dll 如果是本地进程内服务,完全可以不用注册到注册表,当作一般的动态库操作。COM只输出4个接口函数:DllCanUnloadNow,DllGetClassObject,DllRegisterServer,DllUnregisterServer最后两个是注册和反注册用的,所以只需要知道前两个接口的功能就没有问题了。 这样做是不安全和不可预知的,因为这其中需要内存管理等很多方面,除非你非常了解你要使用的COM是怎样实现的,否则你的程序会有不可预知性 lz可以这样试试: 首先你LoadLibrary("com.dll"); 调用com.dll中的DllGetClassObject导出函数,返回一个类厂的接口IClassFactory, 然后调用该接口的CreateInstance方法,就可以返回你想要接口指针了。 ActiveXDLL免注册调用的方法:http://blog.csdn.net/fengrx/archive/2009/05/21/4207203.aspx是VB写的,你可以把语法修改成C++的。 如何禁止文件拖拽出窗口?【急!】 VC中SDI文档中如何在标题中不出现工程名? 在VC++中怎么能做到不使用DLL? 最简单的调用进程内COM DLL的问题 用ado连接access2000数据库的问题?? 请问一个关于SDI的VIEW的问题 谁能把条形码的源程序发到我的邮箱,我给200分,谢谢? 如何将ACCESS数据库中的JPEG图片读出并显示到对话框上,急!急! 三层应用中客户机如何安装! HeapAlloc分配的内存是不能移动的, 请问不能移动是什么意思呢?谢谢 使用setparent的奇怪问题 怎样根据实际情况使用功能类?
lz可以这样试试:
首先你LoadLibrary("com.dll");
调用com.dll中的DllGetClassObject导出函数,返回一个类厂的接口IClassFactory,
然后调用该接口的CreateInstance方法,就可以返回你想要接口指针了。
你可以自己实现一个轻量级的仿COM例如根据自己的需求实现:
1、你自己的IUnknown接口,可以和MS的一样,只有3个方法,其实QueryInterface好像也可以不用
2、通过一定的机制创建接口,可以用CLSID,或者直接用字符串或者其他代替这样你就可以自己想加载几个dll就加载几个dll
COM只输出4个接口函数:DllCanUnloadNow,DllGetClassObject,DllRegisterServer,DllUnregisterServer
最后两个是注册和反注册用的,所以只需要知道前两个接口的功能就没有问题了。
首先你LoadLibrary("com.dll");
调用com.dll中的DllGetClassObject导出函数,返回一个类厂的接口IClassFactory,
然后调用该接口的CreateInstance方法,就可以返回你想要接口指针了。
http://blog.csdn.net/fengrx/archive/2009/05/21/4207203.aspx是VB写的,你可以把语法修改成C++的。