При копировании получается пустая строка - VB

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

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

Листинг программы
  1. Option Explicit
  2. Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpBuffer As Long, _
  3. ByVal lpStringToCopyTo As Long) As Long
  4. Private Sub Form_Load()
  5. Dim strTheFirst As String * 255, strTheSecond As String * 255, lngRetval As Long
  6. strTheFirst = "Some_string"
  7. lngRetval = lstrcpy(StrPtr(strTheSecond), StrPtr(strTheFirst))
  8. Debug.Print strTheSecond
  9. End Sub
Подскажите, почему может не работать код. В итоге при копировании получается пустая строка. Декларация функции lstrcpy изменена относительно стандартной, чтобы принимать копии указателей. Может нужно над строками какие-то действия выполнять, как это делает VB, если применять стандартное объявление as String, а не as Long.

Решение задачи: «При копировании получается пустая строка»

textual
Листинг программы
  1. Option Explicit
  2.  
  3. Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyW" (ByVal lpBuffer As Long, ByVal lpStringToCopyTo As Long) As Long
  4.    
  5. Private Sub Form_Load()
  6.     Dim strTheFirst As String
  7.     Dim buf         As String
  8.     Dim lngRetval   As Long
  9.    
  10.     strTheFirst = "Some_string"
  11.    
  12.     buf = Space$(Len(strTheFirst))
  13.     lngRetval = lstrcpy(StrPtr(buf), StrPtr(strTheFirst))
  14.    
  15.     Debug.Print Err.LastDllError
  16.     Debug.Print buf
  17.     End
  18. End Sub

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


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

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

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

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

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

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