您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> VC/MFC >> 发了好几次都没人解决的问题!~~~ATL的调用

发了好几次都没人解决的问题!~~~ATL的调用

来源:网络整理     时间:2016/8/26 16:37:59     关键词:

关于网友提出的“ 发了好几次都没人解决的问题!~~~ATL的调用”问题疑问,本网通过在网上对“ 发了好几次都没人解决的问题!~~~ATL的调用”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 发了好几次都没人解决的问题!~~~ATL的调用
描述:

假设我在他机用vc 的ATL新建了一个Simple Object,编译了一个dll;
如果我想在本机新的atl工程中 Composite Control中使用这个dll的接口,
通过CoCreateInstance()可以获取得到这个接口,但是前提是这个dll必须在本机注册,
想请问下,如何在调用接口之前,不手动注册他机编译后的dll,而是通过程序来注册这个dll?


解决方案1:

同意孤星飞雨!!

解决方案2:

调用COM的DllRegisterServer函数
或者调用ShellExecute函数执行注册。

解决方案3:

The RegSvr32 utility installs a DLL as an in-process server. It invokes one
or more functions that are implemented by the application, and exported by
name by the DLL. The primary task of these functions is to create or delete
appropriate registry entries. The following functions can be invoked by
RegSvr32.
a.. DllRegisterServer is used for installing DLLs. It should create any
necessary registry keys.
b.. DllUnregisterServer is used for uninstalling DLLs. It should delete
any registry keys that are no longer needed.
c.. DllInstall is used for both installing and uninstalling DLLs. It can
be used in addition to DllRegisterServer and DllUnregisterServer, or in
place of them. It is intended for DLLs that can be installed in more than
one way. Unlike DllRegisterServer and DllUnregisterServer, which take no
arguments, DllInstall takes two arguments. The first is a Boolean value that
specifies whether the DLL is being installed (TRUE) or uninstalled (FALSE).
The second is a string that can be used to specify which installation
procedure to use.
The following is the RegSvr32 command-line syntax. 
regsvr32 [flag1 [flag2 ...] DllName
/u
Uninstall the DLL. If the /i flag is not included DllUnregisterServer will
be invoked.
/i:"string"
Invoke DllInstall. If the /u flag is included, DllInstall is instructed to
uninstall the DLL, by setting the first parameter to FALSE. Otherwise, the
first parameter will be set to TRUE, and DllInstall will install the DLL.
The string following the colon will be passed in as the second parameter to
DllInstall. It is used to specify which installation procedure is to be
used. If /i is used without the colon and string literal, the second
parameter of DllInstall will be set to NULL. Unless the /n flag is included,
DllRegisterServer or DllUnregisterServer will also be invoked.
/n
Do not invoke DllRegisterServer or DllUnregisterServer. This flag can only
be used in combination with /i.
/s
Silent.
/c
Console output.
If no flags are specified, RegSvr32 will install the DLL by invoking
DllRegisterServer. 
To register a DLL named DllName.Dll by invoking its DllRegisterServer
function, use the following command: 
regsvr32 dllname.dllTo unregister the DLL with DllInstall's "uninstall_1"
procedure without also invoking DllUnregister, use the following command: 
regsvr32 /u /n /i:"uninstall_1" dllname.dll


以上介绍了“ 发了好几次都没人解决的问题!~~~ATL的调用”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3608493.html

相关图片

相关文章