注册 登录
编程论坛 VB6论坛

vb6 调用自编的activex dll 文件,在编辑状态下运行正常,但编译成EXE文件后,就死机了。什么原因?

张六先生 发布于 2023-04-19 12:59, 1021 次点击
自编 ActiveX dll 文件,用标准EXE 文件调用。
EXE 文件代码:
        类模块. 类名
Public d As New yidata.dtable
 d.cdd ma,mb

DLL 文件代码:
public sub cdd(ma,mb)

end sub
在编辑状态时运行正常,但在编译成EXE 文件后,就死机了。

请各位在师指点。谢谢!!!

5 回复
#2
东海ECS2023-04-19 19:26
可能是由于编译器的优化设置不当导致的问题。在开发工具的调试模式下,代码运行时使用的是最小化的优化设置,而在编译为可执行文件时,则可能根据编译器的默认设置使用更高级别或者不同类型的优化。这些优化操作可能会导致程序崩溃或死机,尤其是在与COM组件的交互时。

解决这个问题的一个方法是在编译时禁用优化,或者尝试调整编译器的优化设置以适用于与COM组件的交互。 在VB6中,可以通过在项目属性的“编译”选项卡中设置“优化代码”选项来控制编译器的优化设置。

另外,还有可能是因为COM注册不正确,导致调用时出现问题。 在尝试上述优化设置后仍然无法解决问题时,可以尝试重新注册COM组件。 可以使用regsvr32命令来重新注册COM组件。 例如,要重新注册名为“yidata.dll”的组件,可以在命令行中运行以下命令:

regsvr32 yidata.dll


如果仍然无法解决问题,建议使用其他调试工具来进一步调查问题。




#3
独木星空2023-04-20 20:40
回复 2楼 东海ECS
看来,想学好一门编程不容易,为:东海ECS先生点赞!
#4
东海ECS2023-04-21 19:04
以下是引用独木星空在2023-4-20 20:40:52的发言:

看来,想学好一门编程不容易,为:东海ECS先生点赞!

是的,学习任何一门编程语言都需要一定的时间和精力,需要掌握语言的语法、编程思想和常用的库函数等。更重要的是,编程是一种实践,需要不断地写代码来锻炼自己的编程能力和思维方式。

在学习编程时,可以采取以下几种方法来提高效率和质量:

1.掌握基础知识:编程语言的基础知识对于学习和掌握一门语言非常重要,包括语法、数据类型、控制流程和函数等。

2.实践编程:写代码是提高编程能力的最佳方法,通过实践可以加深对语言的理解,掌握常用的库函数和算法。

3.查阅文档:编程过程中常常遇到不懂的问题,可以查阅官方文档、API文档和在线论坛寻找答案。

4.与他人交流:与其他编程者交流经验、分享代码和解决问题可以加速自己的学习过程,同时也可以结交更多志同道合的人。

所以,学习编程是一项长期的、不断进步的过程,需要投入足够的时间和努力,定期检查自己的进展和改进方向。坚持下去,你会发现编程带来的乐趣和成就感。
#5
独木星空2023-04-21 20:40
回复 4楼 东海ECS
东海ECS先生体会很深!
#6
风吹过b2023-04-22 18:05
最近看到一个文章,说了一句话,学习一门语言,光学语言是不够,还要学编译器的参数,特别是优化选项等等。
注:那遍文章是讲如何减少编译后的可执行文件大小的,虽然不明觉厉,因为不太懂C++。
1