vc写的com组件,是用了MFC的,在没装vc环境的机器上注册不了,怎么设置才能注册啊? 如题(这是我全部的分了,请各位大侠赐教) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能说的具体点不,我对com不太熟悉,是use mfc in a static library吗? 应该是缺少相应的依赖库。楼主是用dependency walker看看是不是缺少? 如果是vs2005/vs2008 开发的在开发机器上搜索一下 vcredist*.exe把这个程序拿到目标机器上运行一下,在注册你的组件 是在vc6上开发的,我用dependency walker看了一下,好像是缺少MSVCRTD.DLL怎么样才能在没有装vc环境的机器上也能注册呢? 搜一下没安装VC的机器上有没有MSVCRT.DLL如果有改成release版即可没有把缺少的文件一起打包 对,是debug版,是不是我改成release版的话无论目标机器上有没有MSVCRTD.DLL都可以注册啊,还是要把MSVCRTD.DLL一起打包? 1.一起打包就可以2.也可以是用静态链接的方式。工程属性->General,然后Use MFC in a static Libaray. 改成 release 版的。win 2000 以后的操作系统都自带 mfc 6.0 release 版的dll,不需要自己打包了 顺便问一下,怎么能将com组件写成一个exe的一点就直接注册了,而不是用regsvr32呢 exe类型的com ,第一次运行时会自动注册。你可以写一个exe,调用regsvr32.或者写个批处理regsvr32.exe /i xxx.dll 使用release版本,就不需要MSVCRTD.DLL,不过你应该在工程中设置code generation 为/MT 写一个exe,调用regsvr32,也就是说在程序中用代码注册? 那怎么才能在c#代码里面调用regsvr32 并用它注册某一个com呢?能说详细一点吗,分全给你了 C#啊, Process p = new Process(); p.StartInfo.FileName =@"c:\\windows\\system32\\regsvr32.exe"; p.StartInfo.Arguments = @" dll的路径"; p.Start(); WIN32 Release MinSize;WIN32 Release MinDependence;WIN32 Unicode Release MinSize;WIN32 Unicode Release MinDependence;应该选择哪个? 我生成了release版本,在别人机器上能注册了,但是在使用的时候显示“检索 COM 类工厂中 CLSID 为 {C2D2B2ED-BEDF-41E3-AE91-39DFC804FE78} 的组件时失败,原因是出现以下错误: 8007007e。”在我本机上试的时候在生成的目录下注册可以用,但是换个目录就不可以用了,不知道这是为什么呢? 这应该是你的组件用到了别的组件。看看源码目录下是不是有别的dll或者ocx啥的。 是用到了一些别的动态链接库,但是我把用到的动态链接库也都打包了,注册是可以成功,用的时候出现错误,debug模式下就不会出现,debug和release到底有什么区别呢 呵呵,有错误,那好好调试一下吧。Debug与Release的区别。 我用win32 release minsize 可以了,给分,多谢各位了 fopen文件追加的问题 一个菜鸟问题! BeginPaint () 函数是否只能用在OnPaint消息处理函数中? 如何程序实现.wav到.mp3的转换? 请教:怎样从一个页面上读取字符串放到excel文件中。 请教数据库的多次连接问题 CListCtrl怎么样改变每一列的文字颜色? 如何配置dcom? 关于CButton的位置的问题 HTTP隧道和SSL隧道区别 javascript 调用webbrowse事件 VC在CHtmlView派生类中获得鼠标单击事件的url?
在开发机器上搜索一下 vcredist*.exe
把这个程序拿到目标机器上运行一下,
在注册你的组件
怎么样才能在没有装vc环境的机器上也能注册呢?
如果有改成release版即可
没有把缺少的文件一起打包
2.也可以是用静态链接的方式。工程属性->General,然后Use MFC in a static Libaray.
或者写个批处理
regsvr32.exe /i xxx.dll
C#啊,
Process p = new Process();
p.StartInfo.FileName =@"c:\\windows\\system32\\regsvr32.exe";
p.StartInfo.Arguments = @" dll的路径";
p.Start();
WIN32 Release MinDependence;
WIN32 Unicode Release MinSize;
WIN32 Unicode Release MinDependence;
应该选择哪个?
在我本机上试的时候在生成的目录下注册可以用,但是换个目录就不可以用了,不知道这是为什么呢?