Maw*_*awg 3 delphi dll enums export
这将是我第一次尝试在Delphi中编写DLL以从其他语言调用.
我已经做了很多谷歌搜索并看到一些好的指针,但没有详尽无遗(至少,我有问题,在Embarcadero材料中没有找到答案).
我想知道这个警告列表是否有效,或者我是否遗漏了什么,如果有人可以在下面提出我的问题.
ShareMem
单位.String
类型,应该坚持下去PChar
integetr
和PChar
其他人一样)的简单类型吗?几个问题:
integer
s和PChar
s 的长参数列表? 布尔值?或者我坚持"zer0 ===假,其他一切都是真的"?
还有什么我应该知道的吗?
在此先感谢您的帮助
编译器禁止我导出枚举和常量.我只是没有正确宣布它们吗?我想调用Delphi s/w能够使用枚举元素和所有调用者能够使用常量.
您不能导出枚举类型和常量.调用者必须再次声明它们.类型也是如此.
我不应该使用任何结构,因为编译器之间的字节对齐可能存在差异.
随意使用记录.对齐在同一平台上的编译器之间标准化.确保使用符合平台标准的现代Delphi,XE2或更高版本,以便正确对齐.
所以,如果我不能接受strectures作为参数.我想我应该有一个很长的整数和PChars参数列表?
您可以接收记录作为参数.
我可以接受数组作为参数,还是边界对齐会使它变得危险?
你可以接受数组.您需要接收指向第一个元素的指针和元素数量.数组元素始终紧跟在前面的元素之后.
我可以接受/返回浮点数/双打吗?布尔?还是我坚持"零===假,其他一切都是真的"?
是的,您可以使用浮点类型和布尔值.
还有什么我应该知道的吗?
几乎可以确定.
我会再提一个问题,但肯定会有更多问题.不要将记录用作函数的返回类型.Delphi在处理记录的函数返回类型时不遵循平台标准.请改用out参数.
通过示例学习可以做什么的好方法是研究Windows API.
归档时间: |
|
查看次数: |
318 次 |
最近记录: |