Как можно создать DLL-файлы с помощью NASM? - PullRequest
0 голосов
/ 14 апреля 2011

Можно ли собрать ассемблерный код в файлы .dll с помощью ассемблера NASM?Мне это нужно, потому что я хочу связать вместе файл DLL, содержащий код сборки, и файл DLL, содержащий код C ++, и загрузить этот файл DLL с JNI (Java Native Interface), который будет вызывать функции C ++, которые являются просто оболочками для сборкифункции.Компиляция кода C ++ & Assembly в два отдельных модуля .dll, также возможно вызов «кода DLL Assembly» из «кода C ++ .dll».

С наилучшими пожеланиями, Бенджамин.

Ответы [ 2 ]

2 голосов
/ 14 апреля 2011

NASM просто создает файл объекта (.o / .obj), верно? Почему бы не связать это с вашей C ++ DLL, указав ее в качестве дополнительного ввода либо в командной строке компоновщика, либо в свойствах проекта?

0 голосов
/ 12 февраля 2012

вы можете создать dll с помощью nasm и использовать alink в качестве компоновщика. В вашем источнике используйте следующие строки для каждой функции в вашей DLL: глобальный myfunc

экспорт myfunc

Вам необходимо предоставить функцию _dllmain, которая вызывается при инициализации. Просто верните 1 в eax и retn 12, потому что вам нужно очистить 3 аргумента, которые здесь не используются.

Соберите с помощью -fobj (omf), затем добавьте -dll к опциям pe и GUI

...