Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: PChar Добавлено: 14.09.03 11:32  

Автор вопроса:  Павел | Web-сайт: www.vbnet.ru | ICQ: 326066673 
А что за тип данных PChar и какой ему есть аналог в VB6? Надо как-то
вызвать функцию из dll'ки:

function Search(Root: PChar; KeyWord: PChar): PChar;

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #1 Добавлено: 14.09.03 16:34

на сколько знаю я PChar - это указатель на строку или символ (P - pointer), по-моему используется в Delphi для передачи строк в длл функции так как с ними в дллях Delphi есть проблемы связанные с памятью, как работать с этим типом в вба честно говоря не знаю так как вба с указателями практически не работает...

Ответить

Номер ответа: 2
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #2 Добавлено: 14.09.03 16:42

попробуйте передать строку как она есть может получится..

Ответить

Номер ответа: 3
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #3
Добавлено: 14.09.03 16:44
Ну это я итак знаю. Удалось выяснить, что этот PChar соответствует
LPCSTR в C++. Пробовал просто в качестве параметров передавать строки,
но не получается - VB вылетает без слов. Думаю, проблема в обработке
возвращаемого значения функции (он тоже PChar). Как можно вызвать
грамотно такую функцию?

Ответить

Номер ответа: 4
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #4 Добавлено: 14.09.03 19:17

а стипом variant ничего не пробовали, тоесть присвоить значение этой фунции переменной типа variant?

Ответить

Номер ответа: 5
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #5
Добавлено: 15.09.03 12:50
Теперь объявление функции такое:

procedure Search(FileName, Root, KeyWord: PChar);

Как это будет на VB6? Я пробовал так:

Private Declare Sub Search Lib "c:\mysearch.dll" (ByVal FileName As String, ByVal Root As String, ByVal KeyWord As String)

И так:

Private Declare Sub Search Lib "c:\mysearch.dll" (ByRef FileName As String, ByRef Root As String, ByRef KeyWord As String)

Ничерта не получается :-((

Ответить

Номер ответа: 6
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #6 Добавлено: 15.09.03 17:32

если вы имете доступ к этой длл, то заменить PChar на стринг удастса?

если да, то следует изменить названия входных параметров а в самом начале программы написать FileName:=PChar(pFileName), только к модулю прийдется добавить модуль управления памятью, по-моему MemShare или что-то в этом роде.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам