关于注册控件报"由于应用程序配置不正确,应用程序未能启动..."错误

本人昨天用VS2005写控件,由于刚刚从2003转过来还很不习惯。 编译完成之后,将release版ocx文件注册到一台没有.net环境的机器上时报错:“由于应用程序配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”。在网上搜索了一下,并且逐一尝试。

方法一:在Microsoft Visual Studio 8/VC/redist文件夹下复制相应的.dll文件(程序包含什么库,复制什么),但经过本人尝试,不成功,最后我把所有redist下的库都拷贝到system32下了,还是不行。不知道原因,照道理我认为此方法应该是可行的,在vs2003下我就是这么做的,而且只用拷贝3个主要库就可以了。

方法二:  在link的input里面  
  Ingore  specific  library加上  
  nafxcw.lib  
  libcpmt.lib   
   Additional   dependencies加上  
  nafxcw.lib  
  libcpmt.lib

不知道为何添加,添加之后程序编译不通过,报link错。

方法三:

项目属性-〉配置属性-〉c/c++ -〉代码生成里,换成multi-thread而不是multi-thread-dll。修改编译选项,将/MD或/MDd 改为/MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就不再需要VC的dll了。

这里我也进行了修改,修改过后原来的程序编译报错,不能通过。

方法四:

工程-〉属性-〉配置属性-〉常规-〉MFC的使用,选择“在静态库中使用mfc”
这个方法通过了,而且据本人反复测试,只需要修改这一步生成的ocx,便可以在其它机器上注册,不过ocx的大小比原来大了许多,原来我release下文件大约50kb,之后到达200-300kb。

你可能感兴趣的:(ActiveX,控件)