Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.26;
Скачать: CL | DM;

Вниз

Создание и вызов UDF   Найти похожие ветки 

 
Oleon   (2002-08-05 13:39) [0]

Добавил в имеющуюся DLL функцию скомпелтировал описал.

Когда вызываю ее из Процедуры на сервере выдается ошибка :

Инструкция по адресу "0x0042d38c" обратилась к памяти по адресу
"0x0000000000" память может быть "read". Что это может быть?


 
Oleon   (2002-08-05 13:40) [1]

не может быть "read"


 
Виктор Щербаков ©   (2002-08-05 13:45) [2]

Отлаживать её надо.
Run|Attach to process,
выбираешь IBServer и вперед...


 
Oleon   (2002-08-05 14:10) [3]

Не могу найти как туда попасть. В Delphi 3.0 Run| Attach to process?


 
Виктор Щербаков ©   (2002-08-05 14:13) [4]

Извини, я не обратил внимания на версию Delphi :(
Попробуй поотлаживать в пятерке, например.
А когда отладишь, можно код обратно перенести.
Вот такой дурацкий совет :(


 
Oleon   (2002-08-05 14:30) [5]

Варианты попроще есть? Это уж слишком долго. Нужно же Delphi 5.0 ставить.


 
Виктор Щербаков ©   (2002-08-05 14:46) [6]

Вариант проще, но он не заменит отладку:
Привести объявление UDF и объявление функции в dll (можно даже код функции).
Может быть просто напутал что-нибудь с параметрами или соглашением о вызове.


 
Oleon   (2002-08-05 14:58) [7]

function FormatInt(FmtSTR : PCHAR; var Value : Double) : PChar; cdecl; export;


function FormatInt;//(FmtSTR : PCHAR; var Value : Double) : string; cdecl; export;
var
RS : array[0..255] of char;
Begin
Result := StrCopy(RS, PChar(Format(FmtStr, [Value])));
End;


В InterBase объявлено так:


DECLARE EXTERNAL FUNCTION FORMATINT
CSTRING(10), DOUBLE PRECISION
RETURNS CSTRING(50) -1
ENTRY_POINT "FormatInt" MODULE_NAME "RSB_CASH"


 
Digitman ©   (2002-08-05 17:51) [8]

1. Разницу между CSTRING(50) (IB) и String (OP) понимаешь ?

2. Время жизни переменной RS равно времени жизни UDF, ибо RS - лок.переменная. Что получит IB в результате вызова такой UDF ? Ничего. Ссылку в "пустоту" . Что ты и наблюдаешь.

3. Что есть "-1" в строке декларации RETURNS CSTRING(50) -1 ?



Страницы: 1 вся ветка

Текущий архив: 2002.08.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
7-85267
Kr_Alex
2002-06-08 15:16
2002.08.26
Desktop Wallpaper


1-85009
lovres
2002-08-15 16:59
2002.08.26
Как в DBNavigator е повесить свои картинки вместо - , + и т.д.


3-84919
BlankAlex
2002-08-06 16:35
2002.08.26
D6 & TIBStoredrProc & TIBSQL


3-84927
КСА
2002-08-06 06:41
2002.08.26
Два одинаковых бланка на одном листе в QReport


3-84920
SVM
2002-08-07 09:48
2002.08.26
IB 5.6