再简单点,VC 开发包在 BCB5 中的使用问题。分数不够再加!

CCED136 2002-04-23 07:34:14
我有一个开发包,是用 VC 编写的(从国外得到的),这个开发包包含了一个 DLL 库

(.DLL),和一个驱动程序(.SYS),并且还带有相应的头文件(.H)。开发包自带的

例子程序是用 VC 编写的,而且是标准的 C 语言代码(.C)。也就是说,例子中没

有使用任何的 MFC ,并且是控制台程序,需要命令行参数控制运行。

我将这个例子程序用 VC 编译运行都很正常,但是,我将这些 C 代码加到 BCB5.0 的

控制台程序中时,编译运行都没有警告和错误,但是运行时却没有得到应有的结果。在

我 N 次调试这个例子时,其间有两次运行正常,其余时候都不正常。这是怎麽回事?

再说明白点,我的这个开发包中的 .SYS 文件将和系统的NDIS.VXD挂钩,而.DLL文

件可以通过.SYS文件控制NDIS.VXD文件。而在这个例子程序中,需要打开网络适配器

比如:网卡。用VC编译的这个例子程序每次都可以正常的打开网卡,而BCB50编译的这

个例子却偶尔打开过网卡(N次中只有两次,而最奇怪的是,前一次打开网卡后的程序,

不做任何改动,再次运行,就又不行了。),其余时候都不能打开网卡。这是怎麽回

事?难道是 BCB 不能用这个开发包?
...全文
37 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
CCED136 2002-04-29
  • 打赏
  • 举报
回复
虽然我的问题没有得到解答,但是还是感谢大家的关注,一律给分。

希望大家今后多多帮助。
CCED136 2002-04-26
  • 打赏
  • 举报
回复
up
CCED136 2002-04-25
  • 打赏
  • 举报
回复
我已经用 IMPLIB 将 DLL 中的库函数导出到了 LIB 文件中。

将 .H 文件也进行了改写(在函数导出时加上了 __stdcall )。

采用 IMPLIB 文件生成的 LIB 库会有问题吗??如果真的有问题,

是不是只有采用明确调用了??(Use API Loadlibrary())!!
benwg 2002-04-24
  • 打赏
  • 举报
回复
我试试看:
我不大明白的是,如果调用动态库里的函数的话,一般在编译时会需要“.lib”文件,而一般开发包所带的“.lib”文件都是针对vc的,bcb不能用,你需要用bcb带的"implib"工具重新导出“lib”文件,再加入到工程中。而你这里没有提到lib文件。请看一下vc的例子里是否用到了.lib文件。
aawolf 2002-04-24
  • 打赏
  • 举报
回复
这不是诱惑我们吗,不过我对VXD什么的实在没什么研究,能提出的解决方案有限。
CCED136 2002-04-24
  • 打赏
  • 举报
回复
up
CCED136 2002-04-24
  • 打赏
  • 举报
回复
兄弟会试一下!随便说一下,因为我舍不得有注册码的几个 bcb5 的控件包,

所以还在用 bcb5。
jishiping 2002-04-24
  • 打赏
  • 举报
回复
会不会是数据对齐的问题。在VC中,缺省的是字节对齐(Byte),而C++Builder
采用的是QUAD WORD对齐。你可以在包含你的头文件前后加上对齐的头文件试
试看。假如你的头文件为 "test.h".
#include <pshpack1.h>
#include "test.h"
#include <poppack.h>
C++Builder 6.0在数据对齐上有严重的BUG。如果你使用C++Builder 6.0,请
参见我写的帖子 http://www.csdn.net/Expert/TopicView1.asp?id=615811
CCED136 2002-04-24
  • 打赏
  • 举报
回复
再说明一下:

我的开发包中包含了一个 DLL 库,一个 SYS 虚拟驱动程序。

这个 .SYS 将和系统中的 NDIS.VXD 协同工作,并向系统核心驱动层

提供接口。DLL 库是一个钩子程序,它将使用前面提供的接口。我的程序

将使用这个 DLL 来间接驱动网卡,包括打开、关闭、读写等功能。利用这

个开发包可以很简单的做一个 类似 WINDOWS 的网络监视器的东东。也可以

很容易的利用它来开发一些 HACK 程序和工具。(因为它基于WINDOWS 的核心

驱动和底层 IP 数据包)。

如果谁能解决我的问题,可以得到500 分以上的分数,而且,可以得到我的这个

开发包的一个 COPY 。(在国外的报价上 价值 $495).
limdaidai 2002-04-23
  • 打赏
  • 举报
回复
我不太懂,不过你到这个地方看看
redants.6to23.com
aawolf 2002-04-23
  • 打赏
  • 举报
回复
不清楚是怎么回事,如果那个SYS是硬件驱动的话,那么和DLL应该没什么关系呀,你调用DLL无论是BCB或者VC应该都是一样的。最好确定一下BCB的问题出在哪里,能还原出错误,才能找到错误的原因。
实在不行你就用VC写个DLL,再用BCB调用那个VC的DLL,有一次我做视频捕捉也是DLL在BCB下不能用,我就用这个办法解决的。

13,825

社区成员

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

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