2011-04-14 7 views
0

Est-il possible d'assembler le code Assembly en fichiers .dll avec l'assembleur NASM? J'ai besoin de cela parce que je veux lier un fichier .dll contenant le code Assembly et un fichier .dll contenant du code C++, et charger ce fichier .dll avec JNI (Java Native Interface) qui appellera les fonctions C++ qui ne sont que des wrappers pour le Fonctions d'assemblage. Compilation du C++ & Le code d'assemblage en deux modules .dll distincts, appelé le "Assembly .dll code" du "code C++ .dll" est également une possibilité. Meilleures salutations Benjamin.Comment créer des fichiers .dll avec NASM?

Répondre

2

NASM crée simplement un fichier objet (.o/.obj), non? Pourquoi ne pas lier cela dans votre DLL C++ en le spécifiant comme une entrée supplémentaire soit sur la ligne de commande de l'éditeur de liens, soit sur les propriétés du projet?

+0

D'oh! Je ne peux pas croire que je n'ai pas pensé à ça! : O Silly moi .. de toute façon, merci beaucoup :). – Benjamin

0

Vous pouvez créer un dll avec nasm et utiliser alink comme éditeur de liens. Dans source utiliser les lignes pour toutes les fonctions suivantes dans votre dll: myfunc mondiale

export myfunc

Vous devez fournir une fonction _dllmain qui est appelée à l'initialisation. Renvoyez juste 1 dans eax et retn 12 parce que vous devez nettoyer 3 args qui ne sont pas utilisés ici.

Assemblez avec -fobj (FMO) lien puis avec -DLL ajoutée aux options de pe et GUI

Questions connexes