How to 'DirectX 8' and 'C++ Builder'(200分)

  • 主题发起人 主题发起人 wolf-lee
  • 开始时间 开始时间
W

wolf-lee

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用DirectX 8.0 SDK 编写一个使用其DirectShow的程序, 请问可否用C++ Builder写.
若可以请告知是否DirectX 8.0 SDK 的头文件和库文件可直接使用,若不行,有什么解决
方法. 谢谢
 
http://www.directx-for-delphi.de
这里看看。
 
谢谢 doxpix, 可那是什么文哪?

因为找到了DirectX8的pascal声明档, 用delphi 我已基本会了, 可是若想用C++ builder
我不知道是否可直接使用Microsoft的头文件, 连接库也可直接使用吗?
 
当然可以,这是BCB胜过Delphi的地方之一
 
谢谢 左轻侯, 待我试验一下再请教.

我原来一直以为微软SDK提供的*.lib 在C++ builder中无法使用, 看来是我使用方法有问题.
 
是不是阿狼呀·?
 
lib 文件的格式可能不兼容,要通过命令行工具转换。
 
to bbkxjy: 大侠, 可否多说几句. 用什么工具进行转换? 文中用到" 可能 ", 依然让人
心里没底, 是否肯定格式不兼容?
 
可以使用 implib 命令行工具直接从相应的 dll 文件中生成 lib 引入库。具体可以看看
C++ Builder Tools 的帮助。我没弄过Direcx,这里有几篇文章,虽然有点老,可能对
你仍有些参考价值:
http://community.borland.com/article/0,1410,10472,00.html
http://community.borland.com/soapbox/techvoyage/article/1,1795,10278,00.html
http://community.borland.com/article/0,1410,10514,00.html
http://community.borland.com/article/0,1410,20941,00.html
 
谢谢 bbkxjy, 你提供的资料我看过了. 受你启发, 我查了一下以前版本的DirectX, 发现
在其SDK/lib下有borland子目录, 但现在的DirectX 8.0 却没有. 而我用到的DirectX功能
也是DirectX 8.0 才加入的.
看来只能通过C++ builder的inport type library功能来实现, 这样需要解决的问题
就成了怎样知道所需要的type library在哪个DLL或EXE中了. 对此, 哪位高手有什么好方法?
 
看看.h文件,里面应该有吧
 
一般是 XXXX.lib 对应 XXXX.dll 吧。实在不行,既然你知道了在 Delphi 中怎么用,你可以
到那些由头文件翻译过来的 Pas 文件中去找对应的 dll 文件名的,因为翻译的 Pas 文件
一般都是在初始化的时候动态加载 dll 文件,并通过 GetProcAddress 初始化函数指针
的,若是通过静态链接的方式也要指出 dll 名的。不知你是不是用的 JEDI API Library。
我也有些糊涂了,implib 是引入 type library ?还是引入非以 COM 实现的Export的API?
 
由对应的*.lib找对应的*.dll在DirectX恐怕不行, DirectX提供的编程接口都是COM.

To bbkxjy : 你没糊涂, 我说的import type library功能是指C++ builder IDE的
projects菜单下的Import type library

这个问题看来到此为止了. 长期以来我一直为这样的问题困扰着: 微软的SDK许多
不能在C++ builder下直接或通过简单转换来使用, 特别是这两年, 其SDK提供的都是
COM接口.
我想应该许多程序员会碰到这个问题, 却很少有人提出. 难道是大家都知道该怎样做,
只有我不知道? 奇怪!

非常感谢各位大侠的帮助, 如果有人愿意继续讨论这个问题, 我可以另外加分.

wolf-lee@sina.com
 
多人接受答案了。
 
wolf-lee, COM接口不是问题,因为COM本身就是设计成语言无关的。
我用Delphi直接打开dll文件,如果是一个COM的话,就会自动抽取其接口,
生成一个含有所有接口的.pas文件。我编写访问原生ADO对象的数据库
程序的时候,就是通过这样获得了ADO 2.6的接口说明。我想BCB应该更加
没有问题。
我想MS越来越多地使用COM,这也是原因之一。
 
wolf-lee:
刚刚在深度论坛发现一个帖子对你可能有帮助:
http://forum.vclxx.org/topic.asp?TOPIC_ID=3974&FORUM_ID=15&CAT_ID=3&Topic_Title=BCB+supported+directx+8+library&Forum_Title=WinAPI
说了在 http://bcbdirectx.sourceforge.net/ 这里有兼容 BCB 的 directX8 的 lib 文件
可以下载,你可以试试的。
 
后退
顶部