Delphi调用C语言接口的几点小提示

1、对方给你DLL可能未声明正确的调用方式。一般来说接口都是stdcall或cdecl两种形式的,当然COM时有safecall,但COM对象一般直接导入,不需要自己手写,所以没啥问题。

2、将C语言的char/char *转换到Delphi时,一定要注意它对应的类型不能简单的理解为PChar,因为PChar的定义是有歧义的,在2009以前的Ansi版本中,被映射到了PAnsiChar,而在2009及以后的版本,是被映射到了PWideChar,这显示不是同一个类型。而准确的讲,C语言的char对应的Delphi定义为AnsiChar,char * 对应的是PAnsiChar。而同样的String内部2009后是Unicode版本了,不要直接PAnsiChar(String类型变量)字样子,要是要使用AnsiString代替String类型。

分享到:

2 条评论

沙发空缺中,还不快抢~