Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 基于Microsoft ATL的COM示例不起作用_C++_Dll_Vbscript_Com_Inproc - Fatal编程技术网

C++ 基于Microsoft ATL的COM示例不起作用

C++ 基于Microsoft ATL的COM示例不起作用,c++,dll,vbscript,com,inproc,C++,Dll,Vbscript,Com,Inproc,这对我来说是一个非常奇怪的问题 我直接从Microsoft All-In-One代码框架系列下载了一个COM示例,分为两个版本:和 我使用C++样本。我能把两者都编译好。两者都已注册 我能够通过VBScript客户端使用EXE对象。但是,我将客户端更改为使用DLL客户端,并出现以下错误: ActiveX组件无法创建对象 我的系统是Windows 7 64位。COM组件是32位的,但是对于EXE组件,客户端可以同时使用32位和64位脚本主机,而DLL组件则不能同时使用这两个主机 如何为DLL编写脚

这对我来说是一个非常奇怪的问题

我直接从Microsoft All-In-One代码框架系列下载了一个COM示例,分为两个版本:和

我使用C++样本。我能把两者都编译好。两者都已注册

我能够通过VBScript客户端使用EXE对象。但是,我将客户端更改为使用DLL客户端,并出现以下错误:

ActiveX组件无法创建对象

我的系统是Windows 7 64位。COM组件是32位的,但是对于EXE组件,客户端可以同时使用32位和64位脚本主机,而DLL组件则不能同时使用这两个主机


如何为DLL编写脚本?

进程内DLL是否支持后期绑定IDispatch接口?@Bond是的,两个对象都继承IDispatch,后者由ATL实现。除了EXE或DLL部分外,它们完全相同。既然您提到它是一个32位组件,您知道它是否正在使用32位版本的REGSVR32注册吗?也就是说,在SysWOW64中找到的一个。请更多注意生成警告。除非运行Visual Studio以使其能够写入注册表,否则DLL项目通常无法注册自身。右键单击VS快捷方式并选择“以管理员身份运行”。@债券注册可以。我可以在系统注册表中找到这两个guid。