关于com注册的问题:我用regsvr32对我写的COM进行注册,总是不成功.各位朋友请帮忙啊!!!

hxblvc 2004-09-07 02:03:03
1).我自己建了一个ATL COM工程.
Server 类型: DLL
选择了: 支持MFC.
2).我给这个工程添加一个对象.
Simple object.(支持连接点,其它默认)
(做到这一步时,我编译了一个Debug版的DLL,用regsvr32对它进行注册时,成功.)
3).我将以前的一些代码添进了这个工程,这些代码要一些lib的支持.我就在Set->Link中加入了需要的
库.
但在这时进行link时,出现了一个警告:
>> LINK : warning LNK4098: defaultlib "LIBCMTD" conflicts with use of other libs;
use /NODEFAULTLIB:library
没有错误.
这时,当我用regsvr32对它进行注册时就出现了注册失败的提示:
>> LoadLibrary("E:\*\*\MavxProcessC.dll")failed - 找不到指定的模块.

各位高手,这是怎么回事啊! 大家帮帮忙啊.

...全文
234 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
allenq 2004-09-08
  • 打赏
  • 举报
回复
我说的COM.dll就是你编译出来的那个com类型的dll啊.
是你的com工程中调用了其它的dll文件吧??
hxblvc 2004-09-08
  • 打赏
  • 举报
回复
同意楼上的说法.
msdn_user 2004-09-08
  • 打赏
  • 举报
回复
看看你这个MavxProcessC.dll里面有没有使用别的dll
有的话要放在能搜索到的路径里面
hxblvc 2004-09-08
  • 打赏
  • 举报
回复
结贴了.
问题昨下WU就解决了.
就是:msdn_user说的那个问题.
真不好意思,没把问题搞明白就吓问,现在明白了.
谢谢大家.
hxblvc 2004-09-07
  • 打赏
  • 举报
回复
等侍...
hxblvc 2004-09-07
  • 打赏
  • 举报
回复
to: allenq

隐式调用?显示调用?这怎么说. 我的COM现在没法注册啊, 根本就没有调用啊?

COM.dll是什么啊? 你是不是指COM服务器啊.我的MavxProcessC.dll就是个COM,我现在想注册它.
allenq 2004-09-07
  • 打赏
  • 举报
回复
你的那个MavxProcessC.dll和COM的工程是隐式调用还是显示调用的?
那个警告是无所谓的了?我的COM工程编译也有这个问题, 但运行一直正常的.
你可以把你那个MavxProcessC.dll和你的COM.dll放在同一个目录下try一下了.
hxblvc 2004-09-07
  • 打赏
  • 举报
回复
to: microyzy
当然有,决对有. 这一点不用考虑, 我在第一次用时regsvr32是可以的, 目录是不会有问题的,

对于这个问题我刚开始也想到了, 最后试了N次, 发现不是这个问题.

看看这个警告吧:
>> LINK : warning LNK4098: defaultlib "LIBCMTD" conflicts with use of
一定和这个有警有关,我想. 我为了解决这个问题. 在Set-->Link 的参数中加入
了这项: /defaultlib:"LIBCMTD"
然后我编译时出现了下边的错误:
mfcs42d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in LIBCMTD.lib(dllmain.obj)
msvcrtd.lib(MSVCRTD.dll) : error LNK2005: _atoi already defined in LIBCMTD.lib(atox.obj)
msvcrtd.lib(MSVCRTD.dll) : error LNK2005: _sprintf already defined in LIBCMTD.lib(sprintf.obj)
msvcrtd.lib(MSVCRTD.dll) : error LNK2005: _fflush already defined in LIBCMTD.lib(fflush.obj)
msvcrtd.lib(MSVCRTD.dll) : error LNK2005: _vsprintf already defined in LIBCMTD.lib(vsprintf.obj)
msvcrtd.lib(MSVCRTD.dll) : error LNK2005: _fclose already defined in LIBCMTD.lib(fclose.obj)
msvcrtd.lib(MSVCRTD.dll) : error LNK2005: __CrtDbgReport already defined in LIBCMTD.lib(dbgrpt.obj)
msvcrtd.lib(MSVCRTD.dll) : error LNK2005: __vsnprintf already defined in LIBCMTD.lib(vsnprint.obj)
msvcrtd.lib(MSVCRTD.dll) : error LNK2005: _malloc already defined in LIBCMTD.lib(dbgheap.obj)
msvcrtd.lib(MSVCRTD.dll) : error LNK2005: _free already defined in LIBCMTD.lib(dbgheap.obj)

我现在想是不是COM工程中,不许LINK其它的库啊?
microyzy 2004-09-07
  • 打赏
  • 举报
回复
看看“E:\*\*\MavxProcessC.dll”有这个文件吗?
hxblvc 2004-09-07
  • 打赏
  • 举报
回复
顶...
hxblvc 2004-09-07
  • 打赏
  • 举报
回复
UP有分,

大家帮忙.
hxblvc 2004-09-07
  • 打赏
  • 举报
回复
to: microyzy
说明白一点啊.我是真的不明白. 前一次注册可以成功,可是在程序中加了一些内容之后,为什么会出现这种事.
LoadLibrary() 找不到指定模块, 它要找什么啊, 找DllRegisterServer()函数?
帮忙啊

microyzy 2004-09-07
  • 打赏
  • 举报
回复
>> LoadLibrary("E:\*\*\MavxProcessC.dll")failed - 找不到指定的模块.


不是很明么?
hxblvc 2004-09-07
  • 打赏
  • 举报
回复
帮忙啊.......

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧