VB编的dll是否接受自定义类型的参数?
用了网上百度来的方法,生成了函数返回型的dll文件。
简单的函数没问题,使用VB固有数据类型的也没有问题,但自定义类型的参数就发生错误。百度了一下午,也不确定是否接受此类自定义类型的参数,所以在这里发帖,问一下大家。
VB编的dll是否接受自定义类型的参数?
我的自定义类型参数大致结构如下:
- VB code
public enum enumDecks Deck1 Decks2 Decks4 Decks6 Decks8end enumtype typeRules Deck=enumDecksend typepublic myRules as typeRules
[解决办法]
我用的enum里有value
deck1 =1
decks2 = 2
...
[解决办法]
这与用什么编的DLL无关,与编DLL的人有关.
根据WINDOWS提供的API的用法,应该是传入类型的指针,然后在API内根据指针还原结构,完成结构传递.
有的API由于有不同版本的结构,因此为了确定结构版本,结构的第一个成员往往是一个表明结构大小的成员,例如:
- VB code
Private Type WNDCLASSEX cbSize As Long style As Long lpfnWndProc As Long cbClsExtra As Long cbWndExtra As Long hInstance As Long hIcon As Long hCursor As Long hbrBackground As Long lpszMenuName As String lpszClassName As String hIconSm As LongEnd Type