|
|
|
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:27 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
>>function sum( var x,y:integer):integer;export;stdcall; Наверное function sum(x,y:integer):integer;export;stdcall; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 19:49 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
так вот anton smirnoff если ты пишешь в дельфи function sum( var x,y:integer):integer;export;stdcall; то почему в билдере так: int (__stdcall * func)(int,int); а не скажем так: int (__stdcall * func)(int&,int&); ? (хотя может я не прав и надо писать скажем так : int (__stdcall * func)(int*,int*); с этим моментом я не уверен на 100%) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 21:04 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
да, на счёт var я может и погорячился (ну не писал я раньше на Делфи) но вот попробовал без var , такая же лабуда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 10:39 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
У тебя написано var x,y:integer, а ты туда передаешь константы. Потому и возникает Access violation. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 10:50 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
см. выше, я var убрал, всё равно тоже самое, может в первый раз вызовется, вернёт какую-то глупость, а на 2-ой, 3-ий, ..., раз опять аксесс виолейшион ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 10:53 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
Все работает Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 11:00 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
2ZrenBy слушай, всё получилось, почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 11:10 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
Я думаю, что из-за typedef int (__stdcall * lpfunc)(int,int); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 11:17 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
пробую то-же, только real VS float (оба 8 байт) нихрена, может у меня лыжи не катят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 11:20 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
оказалось real -> double ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 11:25 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
на самом деле всё не тревиально, надо изменить у TCustomADODataSet динамические свойства, к которым в Buildere не подступишься. Что-то типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 11:48 |
|
||
|
DLL from Delphi to Builder
|
|||
|---|---|---|---|
|
#18+
автор писал:надо изменить у TCustomADODataSet динамические свойства, к которым в Buildere не подступишься Не понял. Это какие свойства можно изменить в Delphi, а в Builder-e нельзя? Они же как близнецы похожи, только язык разный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 12:50 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32306650&tid=2035848]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 397ms |

| 0 / 0 |
