作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
考虑以下理解
regsvr32
在通过 将目标 DLL 加载到其地址空间后调用入口点 DllRegisterServer
/DllUnregisterServer
>加载库
。C:\Windows\SysWOW64
但是在我的 2008 R2 Box 上,我能够通过 64 位 regsvr32 注册一个 32 位 dll。这怎么可能?我错过了什么吗?
我想在屏幕截图中突出显示的示例是弹出对话框的最后一个示例。
最佳答案
这应该可以准确解释它是如何发生的:
(来源:alax.info)
regsvr32
将在内部启动它的另一个位数孪生以匹配 DLL 的位数。这样注册就成功了。您无需关心是启动 32 位还是 64 位版本的 regsvr32
,因为它会处理不匹配问题。
您需要注意的场景是当您从 Visual Studio 作为调试主机启动 regsvr32
时。您需要正确的位数,因为具有实际注册的子进程将在调试器之外运行,您将无法逐步执行代码。
关于c++ - 使用 64 位 regsvr32 注册 32 位 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18935163/
是 /RegServer和 /RegSvr相同或不同,如果不同,为什么/如何? 例如,我已经看到(来自 32 位操作系统的示例)这种风格: RegSvr32 COM.exe 或 RegSvr32 CO
我是一名优秀的程序员,十分优秀!