似乎愚蠢的问题:用Delphi如何调用API?(我指的是Delphi本身没有包含的API)

expprg 2003-01-25 12:00:34
比如WindowsMedia SDK、DirectX、Winsock2 API/SPI等等都供了C++用到的.H、类库或DLL等。那么在Delphi中如何使用C++中的各种struct、typedef、#define或class?难道非得重新将其改写为Type、Record不可吗?
望各位指教!谢谢!
...全文
63 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingnup 2003-01-31
  • 打赏
  • 举报
回复
请问各位高手怎样在Delphi中调用VB编写的DLL呢?我试过在VB中调用Delphi写的Dll是没问题,但用Delphi调用VB的则老是失败,不知为何?
myhfit 2003-01-31
  • 打赏
  • 举报
回复
VB的是ActiveX DLL,和普通的DLL不同,因为ActiveX DLL不导出函数
Taken 2003-01-29
  • 打赏
  • 举报
回复
如果使用Delphi中没有帮你声明的API也只能自己写声明了,动态调用也一样,起码要知道参数的个数与类型,该声明的struct还是得声明,我觉得工作量上差不多的
ly_liuyang 2003-01-27
  • 打赏
  • 举报
回复
动态的使用loadlibrary
静态的直接Import到工程 StdCall就是了

操作系统的底层编程,Delphi一样管用!
Delphi可以使用ASM的
其实本质都是ASM+API,管你是VC还是Delphi
PowerVR 2003-01-27
  • 打赏
  • 举报
回复
其实如果真的深入到操作系统的底层编程,我觉得还是用C好
nzh517 2003-01-27
  • 打赏
  • 举报
回复
就象上面说的用loadlibrary就行,不过要是用到一些结构体只能自己写了,在这里我想问个问题,我用delphi调用wincap的函数老是了错(可以调用成功,但是程序老是出错)
BlueTrees 2003-01-27
  • 打赏
  • 举报
回复
大部分的C的定义,Delphi当中都包含了Pascal的定义。有些没有的,有一个官方网站,提供了几乎全部API的PAscal的定义。这个网站的名字我忘记了,该死的收藏夹,好难分类,这是IE的一个垃圾。你在论坛上面发言直接询问这个网站,应该有很多的人知道。
expprg 2003-01-27
  • 打赏
  • 举报
回复
其实我的问题不是如何高用DLL中的函数,而是SDK中提供的各种.h文件中包含了很多预定义#define、常量const和结构struct或类class还有许多typedef。
那么我用Delphi开发时,对这些#define、const、struct、class、typedef是不是要用Delphi或者说用object pascal的语法重新定义,不可能直接用引用C/C++语法的定义(申明)吧?自己重新定义的话不是太麻烦了吗?
BlueTrees 2003-01-25
  • 打赏
  • 举报
回复
还有DirectX用的Com,调用方式有点不一样,不过等同于DLL的调用,不过提供了简单的API帮助你调用,应该说不是调用,而是建立Com对象。Co开头的API你可以看看。

Directx还提供了直接生成接口的API
BlueTrees 2003-01-25
  • 打赏
  • 举报
回复
这个问题的确愚蠢,C怎么调用,Delphi就怎样调用,上面说的是动态连接,你还可以静态连接,你看看Delphi的源文件,他们是怎样弄的。

你最好先把Pascal的语法弄懂,然后把所有的保留字的含义看一遍。
doer_ljy 2003-01-25
  • 打赏
  • 举报
回复
用loadlibrary
就可以调用了

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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