|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
blonduserТолько если это мембер функция класса, то первым параметром всегда должна передаваться ссылка на объект класса. Кстати, чисто из любопытства: как ты умудрился экспортировать отдельный метод класса? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 13:36 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
blonduserBarloneНу если возвращаемое значение не лезет в регистр, то первым параметром передается указатель на место в памяти, где будет помещен результат. https://itanium-cxx-abi.github.io/cxx-abi/abi.html#return-value Это все понятно. Только если это мембер функция класса, то первым параметром всегда должна передаваться ссылка на объект класса. А когда я обращаюсь к функции после получения её адреса через GetProcAddress, первым параметром лезет именно возвращаемой значение. И происходит падение. Думал сделать это через встроенный ассемблер, но оказалось что Itanium и X64 не поддерживают его. За ссылку спасибо.Ну если вы все равно вручную описываете импортированный из dll метод класса как обычную функцию, так опишите ее как принимающую еще один указатель, куда будет сложен результат, и возвращающую void. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 13:53 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
Настоящее веселье будет, если класс который в dll, использует множественное наследование... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 13:58 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovblonduserТолько если это мембер функция класса, то первым параметром всегда должна передаваться ссылка на объект класса. Кстати, чисто из любопытства: как ты умудрился экспортировать отдельный метод класса? Приводил кусок года именно для вас 21747788 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 14:13 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
BarloneНу если вы все равно вручную описываете импортированный из dll метод класса как обычную функцию, так опишите ее как принимающую еще один указатель, куда будет сложен результат, и возвращающую void. И это уже было 21748888 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 14:15 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
blonduserПриводил кусок года именно для вас Это не код экспорта . Это код импорта . Совсем разницы не замечаешь?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 14:22 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovblonduserПриводил кусок года именно для вас Это не код экспорта . Это код импорта . Совсем разницы не замечаешь?.. Экспортируются они все. Импортируются только те что необходимы. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 14:24 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
blonduserЭкспортируются они все. КАК??? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 14:44 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
blonduserBarloneНу если вы все равно вручную описываете импортированный из dll метод класса как обычную функцию, так опишите ее как принимающую еще один указатель, куда будет сложен результат, и возвращающую void. И это уже было 21748888 так если у класса нетривиальный конструктор и деструктор, передавать надо не готовый экземпляр (для него не вызовется деструктор), а указатель на неинициализированный кусок памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 15:31 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovblonduserЭкспортируются они все. КАК??? Ну mfc же как-то собирается в виде dll... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 15:39 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 15:41 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
BarloneНастоящее веселье будет, если класс который в dll, использует множественное наследование...достаточно наличия в классе виртуальных функций ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 20:30 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyСпособ линковки вообще не причем. У вас разные вызовы синтаксически. В одном случае вы вызываете метод, в другом - свободную функцию. Чтобы во втором случае тоже вызывалось как метод, вам нужно объявить указатель на метод, а не на функцию (при условии что в вашей DLL это действительно метод). Код: plaintext 1. 2. 3. 4.
Всё получилось почти по приведенному примеру и благодаря небольшому напильнику. Проверил для не виртуальных функций. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 16:37 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
blonduserКто подскажет, как сделать так что бы параметры во втором случае передавались так же как в первом? Способ и порядок передачи параметров в фукнцию и возвращаемых значений из функции в С++ не определён. Полагаться на это -- будет программа с UB. Так что ты не должен просто закладываться на это . Кроме этого, есть RVO, copy ellision и встраивание, где ты вообще ничего можешь не передавать никуда. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 18:37 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
blonduserLeonid Kudryavtsev, Всё вызывается с __cdecl, но не помогает. Гы, это как это? вызывается с __cdecl, а написано? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 18:39 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
kolobok0Рекомендую глянуть книгу Рихтер "WINDOWS для профессионалов" там многое чаво интересного узнаете, в том числе и по библиотекам... Ему лучше не надо! Он и так лезет туда, куда ему рано. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 18:44 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
MasterZivЕму лучше не надо! Он и так лезет туда, куда ему рано. Еще один психолог. Какое ограничение по возрасту 6+? Где вас учат давать бесполезные советы? Уже все сделано и работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 19:35 |
|
Порядок передачи параметров при вызове функции.
|
|||
---|---|---|---|
#18+
MasterZiv, имхо - люди не способные сами решать мелкие затыки всегда будут находиться на позиции просящих и платящих. тем более не хотящие услышать. профессионала от лоха отличает именно реакция на подсказку - профи достаточно намёка (и будет благодарен!!!) на вероятную возможность либо вектор поиска.... посему считаю что готовые конфеты в рот бесполезны, развращают и могут размножать ошибки, помимо решений. как то так... (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 22:22 |
|
|
start [/forum/topic.php?fid=57&msg=39741011&tid=2017706]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 267ms |
total: | 393ms |
0 / 0 |