2013-10-26 1 views
0

У меня есть dll и вы можете видеть имена функций с помощью ходячего зависимостей, тогда как я могу сказать, что функция была в _stdcall конвенции или in _cdecl конвенции?Как определить функцию в DLL, будь то в соглашении _stdcall или в соглашении _cdecl?

Я задаю этот вопрос, потому что я заметил, что есть много дискуссий о том, когда следует использовать _stdcall и когда использовать соглашение об экспорте в DLL _cdecl.

Это нормально, когда доступен исходный код DLL, но как насчет того, доступен ли только DLL-файл?

+0

Какой язык вы используете? C++? Вы должны пометить вопрос на правильном языке, чтобы помочь ему больше взглянуть на него. –

+0

Документация для DLL должна вам сообщать. Информация не включена в DLL. –

+0

Реальная ситуация в том, что я хочу загрузить DLL с помощью Python или Java. DLL построена с помощью VC++ и файла .def. –

ответ

0

MSDN имеет все документы VC++ naming conventions, хорошо документированные. Начните там.

Можно переопределить название экспорта, поэтому, возможно, это не идеальный способ отличить вещи. Вы также можете разобрать функции и обратить пристальное внимание на то, как они используют регистры и стек, чтобы быстро разобраться.

Смежные вопросы