|
|
|
Делфийская DLL и основная программа C++, передача агрументов туда-сюда
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! DLL: Код: sql 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. Осн. прога: Код: sql 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. Заголовок: Код: sql 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. Проект простой. На форме одна кнопка и два поля TEdit. По нажатии на кнопку происходит увеличение содержимого Edit2 на единицу и результат заносится в Edit1. Почему в C++ входной параметр воспринимается как ссылка, а выходной - как ссылка ссылки ? При этом, если основная прога написана на Делфи, то всё ожидаемо: и входной, и выходной параметры воспринимаются как ссылки на числа. Извращался по всякому. И cdecl ставил, и var вместо out. Один фиг... Это так задумано, или я где-то накосячил? Полдня лопатил всемирную помойку, ничего не нашёл. Подскажите, плз., если кто сталкивался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 19:02 |
|
||
|
Делфийская DLL и основная программа C++, передача агрументов туда-сюда
|
|||
|---|---|---|---|
|
#18+
MrGalaxy...Это так задумано, или я где-то накосячил? Полдня лопатил всемирную помойку, ничего не нашёл. Подскажите, плз., если кто сталкивался. "я тебе одын умный вещь скажу, ты только не обижайся! Твой машин в соседнем дворе стоит." (из кинухи). По теме: Обычно, если с ходу, после умных книжек не получается, то делают следующее. 1) берётся программка типа хэллохты мир, и необходимый тип параметра который необходимо передать туда или сюда. 2) компиляеца всё вместе, как задумано. 3) запускается обычный отладчик, и на нижнем уровне смотрите как и что передаётся-читается. 4) правите исходный код, повторяете с пункта 2 5) когда всё заработает - вставляете в боевой код. язык пофигу, компилятор пофигу, комбинации связи - пофигу. приходилось вязать так разные языки... фортраны, асемблеры, кларионы, клипперами, ваткомы, на различных осях - различный софт, всякие резиденты-прерывания на борландах доводить до ума, править лаги в сишных библиотеках и т.п. и т.д.. короче говоря метода даст вам однозначный результат - надёжность и понятие как это должно быть... удачи вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2013, 01:13 |
|
||
|
Делфийская DLL и основная программа C++, передача агрументов туда-сюда
|
|||
|---|---|---|---|
|
#18+
Зачем нам мелкоскоп, у нас и так глаз пристрелямши! (с) (За точность цитаты из Лескова не ручаюсь, но как-то так :) ). Видимо придётся осваивать какой-н. отладчик. Ну да ладно, путём шаманских плясок вприсядку с бубном и балалайкой , а также благодаря подсказкам с Киберфорума, пришёл к такому коду dll: Код: pascal 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. Как оказалось, делфийские out и var добавляют лишнюю ссылку, поэтому такая чехарда и творилась. В С++ теперь достаточно одной звёздочки, а делфийский вызов оформил так: Код: pascal 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2013, 11:40 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=51&tid=1341596]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 425ms |

| 0 / 0 |
