wie muss ich den Code in PB / Office modifizieren, so dass die Funktion auch unter 64-Bit Office einen String zurückgibt und nicht komplett abstürzt?
PB-Code:
Code: Alles auswählen
#MAX_TEXTLEN = 1024
Structure vbString
len.l
text.s{#MAX_TEXTLEN}
EndStructure
Code: Alles auswählen
; Stringübergabe von PureBasic nach VB/VBA
Procedure.i SetString(Var.s, nFormat=#PB_Ascii)
Static result.vbString
PokeS(@result\text, Var, -1, nFormat)
result\len = Len(Var)
ProcedureReturn @result\text
EndProcedure
ProcedureDLL.i Test()
Protected Result.s = ""
...
Result = "Ein kleiner Test"
ProcedureReturn SetString(Result)
EndProcedure
Code: Alles auswählen
Private Declare PtrSafe Function Test Lib "MyPB.dll" () As String