如何将COM组件(*.dll)或exe,通过命令行重新编译为新的dll文件?
答案:2 悬赏:80 手机版
解决时间 2021-12-28 10:30
- 提问者网友:酱爆肉
- 2021-12-27 16:24
是这样的,我有一个dll的COM组件,在C#中直接添加引用可以,并且编译后也会生成一个Interop.开头的dll文件,但是因为这个COM组件有多个不同的版本,如果直接添加项目引用在其他版本下就会发生COM组件异常,所以想通过在代码中动态的自动编译COM组件为一个dll后再通过反射到项目中使用。如果直接用反射调用这个COM组件,会报异常“该模块应包含一个程序集清单。 (异常来自 HRESULT:0x80131018)”,所以必须对这个COM组件重新编译。 以前通过一个命令行命令做过,是可以将一个dll或exe重新生成一个指定的dll文件的,不过现在忘了怎么弄的?请各位帮忙
最佳答案
- 五星知识达人网友:躲不过心动
- 2021-12-27 17:46
采用
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
方式建立你COM组件类,重新编译即可。
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
方式建立你COM组件类,重新编译即可。
全部回答
- 1楼网友:洒脱疯子
- 2021-12-27 18:51
请详细告知你使用 cl.exe 的具体命令行命令。
收到何种错误提示?
你是否尝试过在工程里查看工程属性,一般可以看到其命令行写法。
一般编译 dll 的话,不在 cl.exe 里输入开关。而是在链接器上用 /dll 参数:
link /dll
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯