似乎愚蠢的问题:用Delphi如何调用API?(我指的是Delphi本身没有包含的API) 比如WindowsMedia SDK、DirectX、Winsock2 API/SPI等等都供了C++用到的.H、类库或DLL等。那么在Delphi中如何使用C++中的各种struct、typedef、#define或class?难道非得重新将其改写为Type、Record不可吗?望各位指教!谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用loadlibrary就可以调用了 这个问题的确愚蠢,C怎么调用,Delphi就怎样调用,上面说的是动态连接,你还可以静态连接,你看看Delphi的源文件,他们是怎样弄的。你最好先把Pascal的语法弄懂,然后把所有的保留字的含义看一遍。 还有DirectX用的Com,调用方式有点不一样,不过等同于DLL的调用,不过提供了简单的API帮助你调用,应该说不是调用,而是建立Com对象。Co开头的API你可以看看。Directx还提供了直接生成接口的API 其实我的问题不是如何高用DLL中的函数,而是SDK中提供的各种.h文件中包含了很多预定义#define、常量const和结构struct或类class还有许多typedef。那么我用Delphi开发时,对这些#define、const、struct、class、typedef是不是要用Delphi或者说用object pascal的语法重新定义,不可能直接用引用C/C++语法的定义(申明)吧?自己重新定义的话不是太麻烦了吗? 大部分的C的定义,Delphi当中都包含了Pascal的定义。有些没有的,有一个官方网站,提供了几乎全部API的PAscal的定义。这个网站的名字我忘记了,该死的收藏夹,好难分类,这是IE的一个垃圾。你在论坛上面发言直接询问这个网站,应该有很多的人知道。 就象上面说的用loadlibrary就行,不过要是用到一些结构体只能自己写了,在这里我想问个问题,我用delphi调用wincap的函数老是了错(可以调用成功,但是程序老是出错) 动态的使用loadlibrary静态的直接Import到工程 StdCall就是了操作系统的底层编程,Delphi一样管用!Delphi可以使用ASM的其实本质都是ASM+API,管你是VC还是Delphi 如果使用Delphi中没有帮你声明的API也只能自己写声明了,动态调用也一样,起码要知道参数的个数与类型,该声明的struct还是得声明,我觉得工作量上差不多的 请问各位高手怎样在Delphi中调用VB编写的DLL呢?我试过在VB中调用Delphi写的Dll是没问题,但用Delphi调用VB的则老是失败,不知为何? VB的是ActiveX DLL,和普通的DLL不同,因为ActiveX DLL不导出函数 还是 DBGird添加数据刷新问题 100分帮忙开发一个activex控件 gif 文件的读写 这我软盘怎么修复? 请帮忙修改? 能告诉我如何去掉edit控件运行时的光标么?谢谢您的回复 如何将opendialog里选中的文件放到listbox里? 菜鸟请大虾指点:ADOQuery查询语句已经完成,但是DBGrid无法显示查看的数据(//bow) 如何得知点击了哪一个菜单项(PopopMenu) 关于人机交互(聊天、指令),请求给条思路。。。。。。。。 递归得到所有子控件出现了麻烦。 马年小弟最后一个问题---求得到系统当前日期及时间的函数
就可以调用了
那么我用Delphi开发时,对这些#define、const、struct、class、typedef是不是要用Delphi或者说用object pascal的语法重新定义,不可能直接用引用C/C++语法的定义(申明)吧?自己重新定义的话不是太麻烦了吗?
静态的直接Import到工程 StdCall就是了操作系统的底层编程,Delphi一样管用!
Delphi可以使用ASM的
其实本质都是ASM+API,管你是VC还是Delphi