Orbiter Francophone > Création Orbiter Francophone

Exportation des fonctions dans un module DLL

(1/2) > >>

maxoo:
Bonjour à tous !
J'en ai un peu parlé dans le topic "Capsule en dur pour NASSP 7.0" mais je remets ça ici pour plus de clarté. La solution -si on la trouve- pourra peut-être aider quelqu'un d'autres...

J'essaie de compiler NASSP 7.0, plus exactement le sous-projet Saturn5NASP (et sa dépendance PanelSDK). APrès paramétrage, ça compile, mais Orbiter freeze à l'ouverture. J'ai pas mal cherché, puis j'ai fini par ouvrir la DLL avec "DLL Export Viewer" pour voir si mes fonctions sont bien là... et elles n'y sont pas. On dirait que la plupart des fonctions OAPIFUNC (alias de DLLIMPORT, alias de __declspec(dllimport), définie dans OrbiterAPI.h) ne sont pas exportées.

Une comparaison de l'exploration de la DLL originelle (d'abord), puis de la mienne...


J'y suis depuis quelques jours et je n'avance plus... Est-ce un mauvais paramétrage de VS2017 ? Ou une lib mal jointe ?

Merci

Mars Bleu:
Tous mes encouragements, Maxoo. Malheureusement, je ne connais pas encore
grand chose dans le domaine.

jeanus:
Bonjour, je galère également avec le C++ mais à tout hasard, "Orbiterapi.h" apparaît-elle dans les "dépendances externes" de ton projet  !?
Si oui ... ???
 :wall:

maxoo:
Merci à tous les deux pour vos réponses ! :)
OrbiterAPI.h n'est pas dans les dépendances externes, mais dans les Headers. En revanche, on y trouve orbitersdk.h, qui inclut OrbiterAPI.h...
Post Merge: 03 February 2018, 01:17:50J'ai compris pourquoi les fonctions ne sont pas exportées : elles sont déclarées dans orbiterAPI.h mais jamais définies :wall:. En créant un OrbiterAPI.cpp comportant les définitions (simples fonctions vides) des éléments en question, elles apparaissent dans la DLL comme exportées.

Seulement, j'imagine qu'on n'est pas sensés créer les définitions comme ça... Si c'était le cas elles seraient déjà dans NASSP. Bref, je regarderai plus en détail le SDK demain.

jeanus:
 :wonder: étrange, dans ma DLL OrbiterSDK.h et API.h sont toutes les deux dans les dépendances externes, peut-être faut-il les déplacer manuellement, j'ai déjà fait plusieurs DLL, je n'ai jamais été obligé de créer d'OrbiterAPI.cpp...
Il doit y avoir un "Gag" quelque part !
à suivre ...
 :beer:

Navigation

[0] Message Index

[#] Next page

Go to full version