写DLL给VB用,不是什么难题,但我们要做到字符变量,从FreeBasic到VB6,从VB6到FreeBasic,在VB6端无痛使用,那就要费点功夫了。
VB6代码:直接写 String
Private Declare Function GetStr Lib "FBtoVB.dll" Alias "GETSTR@0" () As String '返回字符串

FreeBasic和VB6的字符变量的内存格式是不同的,因此我们要在FreeBasic的地方搞个转换函数。
FB代码:
'=====================关键函数================
'--------------------------------------------------------------------------
Function BStrToString(nBStr As BStr) As String '将VB里的字符串转换为FB里使用的字符串
Dim L As Long =Peek(Long,Cast(UInteger,nBStr) -4)
Dim ss As String = String(L,0)
memcpy StrPtr(ss),nBStr,L
Function = ss
End Function
'-------

这篇博客介绍了如何使用FreeBasic编写DLL,并确保字符变量在FreeBasic和VB6之间无缝转换。作者提供了一个测试示例,展示了在FreeBasic中导出的函数代码,以及在VB6端如何声明和使用这些DLL,同时添加了数组操作的示例。
最低0.47元/天 解锁文章
670

被折叠的 条评论
为什么被折叠?



