Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
Создаю DLL в Делфи library Project1; uses SysUtils, Classes; function sum(var x,y:integer):integer;export;stdcall; begin result := x + y; end; exports sum; end Загружаю её в Билдере int (__stdcall * func)(int,int); func = (int ( __stdcall *) (int,int))GetProcAddress(dll_handle, "sum"); всё вроде хорошо, func!=NULL, но вот вызов функции (ex. func(100,1)) выдаёт аксесс виолейшион ???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:32 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
про стандарты на вызовы функций слышал? Так вот они разные у Си и Паскаля. так что в описание фонкций указывай явно стандарт. например stdcall и будешь иметь счастье ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 03:23 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
на самом деле надо var убрать, наверное, function sum(x,y:integer):integer;export;stdcall; но это тоже не помогает 2StarWind а разве я не поставил stdcall { library Project1; uses SysUtils, Classes; function sum( x,y:integer):integer;export;stdcall ; begin result := x + y; end; exports sum; end int ( __stdcall * func)(int,int); func = (int ( __stdcall *) (int,int))GetProcAddress(dll_handle, "sum"); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 10:45 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
var точно ошибочен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 14:09 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
сорри, не заметил а спецификация var работает... например функция CreateThread описание в дельфи Tid потока именно как var кстате, можно посмотреть как это же описывается в С. В том же самом хелпе на эту функцию. var по идее это указатель на переменную ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 03:58 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
Да, но при вызове шаблон процедуры тогда должен в точности повторить этот var, а в данном случае это сделано не было и константы 100 и 1 передались как адреса - вот и AV. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 09:51 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
насколько я помню описание var a:integer и a :^integer одно и тоже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 10:34 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
Не спорьте. Этот топик есть и в С++шном форуме, там уже про var все выяснили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 10:45 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
Но вопрос так и не решили (оказалось, что все гораздо сложнее). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 10:47 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32308470&tid=2116179]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 392ms |

| 0 / 0 |
