![]() |
delphi указатели из dll
помогите плиз, подключаю библиотеку писаную на с++, использую функцию
__inline long __stdcall GetMessageDescription( char* & Buff, unsigned long Code, char** pmes=NULL, unsigned char Count=0 ) на делфе function GetMessageDescription( P:Pointer; Code:Longint; P1:pointer; L1:integer):Longint; stdcall; external 'msgmgr.dll' name 'GetMessage'; по указателю Р должно лежать текстовое сообщение, размер памяти возвращает функция или код ошибки. Как из указателя достать сообщение ??? я вааще начинающий и не понял как, все время вываливает "аксес виолетион" :( |
Роизменовуеш указатель
|
Я бы на дельфе написал так:
type PPChar=^PChar; function GetMessageDescription( var buf:PChar; Code:LongWord; PMes:PPChar=nil; Count:byte=0):Longint; stdcall; external 'msgmgr.dll' name 'GetMessage'; |
Возник похожий вопрос.
Как правильно написать это на Делфи? Подскажите, пожалуйста. В DLL-ке описание на функцию на С: extern "C" RET_CODE GetCoefs(float* pCoef,unsigned short* pZeroCode); pCoef –указатель на переменную, куда вернется первый коэффициент, pZeroCode –указатель на переменную, куда вернется второй коэффициент. Вариант: function GetCoefs(pCoef:real;pZeroCode:integer):?????; external 'math_norm.dll'; 1. Как прописать в type и var: pCoef и pZeroCod? 2. Как обработать RET_CODE? Возвращаемые значения: RC_OK – нормальное завершение. RC_BAD_PARAM - параметры заданы неверно. |
Цитата:
PWord = ^Word; RET_CODE надо смотреть как объявлен в .h файле и от этого делать дельфовое объявление. |
Часовой пояс GMT +4, время: 05:46. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.