1、本人使用VS.Net2003中文版本,用VC7.0编写了一个COM组件,然后在VB6.0里使用,声明如下:
Dim WithEvents CommControl As YuangeTPW.clsCommControl
Dim Connect As YuangeTPW.clsConnect
.............
.............
..AAAAAAAAAAAAAAAA.......错误在在这个BackYYMidValue事件中............在VB6.0环境下运行没有问题,当编译成Exe文件后,总是出现异常导致整个程序崩溃
Private Sub CommControl_BackYYMidValue(ByVal str_Id As String, ByVal sng_SMGC As Double, ByVal sng_SZG As Double, ByVal sng_XS As Double, ByVal sng_YQ As Double)
On Error Resume Next
Err.Clear
SetCell GridIndex, 0, str_Id
SetCell GridIndex, 2, CStr(sng_SMGC)
SetCell GridIndex, 3, CStr(sng_SMGC)
SetCell GridIndex, 4, CStr(sng_XS)
SetCell GridIndex, 6, CStr(sng_SZG)
End SubPrivate Sub Form_Load()
Set Connect = New YuangeTPW.clsConnect
Set CommControl = Connect.GetCommControl
.......
End Sub
..........
Private Sub Form_Unload(Cancel As Integer)
Set CommControl = Nothing
Set Connect = Nothing
End Sub以上的代码,在VB6.0的环境中运行,正确无误,CommControl_BackYYMidValue 此函数是CommControl对象的触发时间,当事件触发使用也能正常工作,但是处于Debug状态或者在编译成Exe代码后,总是出现错误,导致程序异常崩溃无法运行或者自动关闭VB6.0整个程序,这个为什么啊? 不过在VB.Net下都能正常的工作。我把VB6.0的代码升级到VB.Net下,都不会出现错误!。2、VS2003.Net下的VC7.0编辑器有一个巨大Bug,我在编写以上COM组件使用,因为源代码是很多的,所以我修改时候,打开很多了文件,有一次,我重新编译COM组件时候,在编译过程中,我按了保存文件(这个我经常这样,我害怕忘记保存),编译成功后,就提示a.h 此文件修改,是否要重新载入,我没太注意,就按确定了,这下惨了!VC7.0把a.cpp的内容拷贝到a.h的文件里,这样a.h和a.cpp内容一样了,我简直痛苦死了,因为这两个文件很重要,代码也很多,a.h声明了很多类和变量,我重新花了2个多小时时间终于重新写完a.h,其间是一次又一次的编译工程,是为了找到未声明的变量和类,痛苦啊。 后来想下,还是比尔.盖次 手下留情啊,万一把a.h内容拷贝到a.cpp去,我就
所以我建议啊在VC7.0下要注意:
1、不要在工程里打开太多文件,修改一个文件后,马上关闭保存
2、在编译过程中,尽量不要按保存 
3、在提示文件修改,要重新载入一定要三思而后行啊!!!!!