Visual Basic вылетает с ошибкой при попытке вызова функции из DLL - VB

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. Declare Function testdll Lib "cfg.dll" () As String
Листинг программы
  1. Private Sub Form_Load()
  2. Me.Caption = testdll()
  3. End Sub
сама dll написана на PureBasic
Листинг программы
  1. Global Result.s
  2. ProcedureDLL.s testdll()
  3. Result ="test string"
  4. ProcedureReturn Result
  5. EndProcedure
Такой случай наблюдается только при вызове ф-ций возвращающих строки. С числами всё ОК. Я бы переписал имеющиеся в dll строковые функции на VB, но это будет слишком долго и муторно. Скрин ошибки во вложении. Есть какие либо варианты решения?

Решение задачи: «Visual Basic вылетает с ошибкой при попытке вызова функции из DLL»

textual
Листинг программы
  1. Private Declare Function EasyRequester Lib "c:\Purebasic\Compilers\Purebasic.dll" (ByVal Message As String) As Long
  2. Private Declare Function EasyString Lib "c:\Purebasic\Compilers\Purebasic.dll" (ByVal Message As String) As Long 'String
  3. Private Declare Function lstrcpy Lib "Kernel32.dll" (ByVal MyString As String, ByVal MyLong As Long) As Long
  4.  
  5. Private Sub Command1_Click()
  6. Dim Result As Long
  7. Dim MyString As String
  8. Dim Pointer As Long
  9.  
  10. Result = EasyRequester("Test")
  11. MsgBox Str(Result)
  12.  
  13. Pointer = EasyString("Test")
  14. MsgBox Str(Pointer)
  15.  
  16. MyString = Space(255)
  17. Res = lstrcpy(MyString, Pointer)
  18.  
  19. MsgBox MyString
  20. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы