救火!!!!!

jh 2000-02-18 11:54:00
请问各位:
在vb中如何调用由c生成的.obj文件中包含的函数!!!!
...全文
205 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Un1 2000-02-20
  • 打赏
  • 举报
回复
在VB中直接连接外部OBJ的情况我曾经进行过研究, 但最后不成功. 现将我的大致方法
告诉你, 希望有所帮助, 如实验成功, 务必将方法告知.

1. 在一个标准模块中写一个空函数, 此函数以OBJ中的函数一致.

2. VB在生成EXE时的OBJ文件可用以下方法保留:
a.自制一个ActiveX, 在其Initliaze事件中加一Msgbox函数.
b.在EXE中使用该ActiveX.
c.在VB生成EXE之前调Link时就会停顿, 直到Msgbox被响应.

3. 此时用真正的同名OBJ文件取代以上替代文件

4. 响应Msgbox使编译继续.

5. VB提示若干连接错误.

6. 对照错误直接修改OBJ文件使其合乎要求.

7. 重复以上过程, 直至编译通过.

以上过程中重点是VB的模块编译后的名称, 大概是模块名加过程名加@加参数所占字节数等, 而一般C的是下画线加过程名加@加参数所占字节数, 这里需要仔细研究.

最后虽然编译通过, 但程序不能运行, 用Dependswork观看, 发现由于我的OBJ中使用了Kernl, 结果本来VB程序唯一的一个动态连接库Msvbvm60.dll被Kernl32.dll取代, 所以失败, 即说明VB的LINK只能连接一个DLL. 不过我想如果你的OBJ中没有调用任何DLL的话, 以上方法是可以作到的.

祝你好运!

wulang 2000-02-20
  • 打赏
  • 举报
回复
我同意active,VB在编译过程中是会生成OBJ文件的,只不过在编译完成后会自动删除。
我想问:能不能将OBJ文件保留,再与其他语言的OBJ进行连接呢?
active 2000-02-18
  • 打赏
  • 举报
回复
VB在编译的过程中是会生成OBJ文件的.
jing 2000-02-18
  • 打赏
  • 举报
回复
只能做成DLL
然后从LIB入口
cloud 2000-02-18
  • 打赏
  • 举报
回复
vb是一种解释语言,不象C,可以直接引用其它语言编译生成
的。OBJ文件,自己也不生成.OBJ文件。所以,如Unl所说:
把C中的文件生成DLL后,调用它。
Un1 2000-02-18
  • 打赏
  • 举报
回复
把Obj作成dll后再调用。

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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