Domanda

Nella mia azienda usiamo file .def per specificare i simboli che devono essere esportati. (Vorrei poter usare una tecnica più moderna e automatizzata, purtroppo, i ragazzi che decidono di nuovo dal vivo negli anni ottanta).

Creazione di un file .def a mano, mediante strumenti manuali copia-incolla è noioso e soggetto a errori ma finora posso vivere con esso.

Tuttavia, ho bisogno di scrivere un file .def simile per la versione a 64 bit della DLL. La decorazione nome di diverse funzioni cambiato e mi chiedo se c'è un modo per generare un file .def per la versione a 64 bit dalla versione 32 bit.

Sei a conoscenza di qualsiasi strumento che mi potrebbe aiutare? Questo è anche realistico? Io davvero non mi sento come voglio farlo a mano ancora una volta. Qualsiasi soluzione, anche uno che coinvolge la codifica il mio strumento, è il benvenuto.

Grazie.

È stato utile?

Soluzione

I probabilmente __declspec (dllexport) i simboli che volevo, di compilazione, e quindi eseguire dumpbin / export sul DLL risultante per ottenere i nomi alterati, e quindi è possibile rimuovere il __declspec e fare un file .def.

Altri suggerimenti

dire al vostro capo per tornare agli anni '80. Scherzi a parte, questo non è un modo portabile per i nomi dei simboli di esportazione. Cosa succede se il compilatore C ++ cambia il nome mangling schema? Allora dovreste fare questo (quello che ha detto jcopenha) tutto da capo. Che cosa succede se non si lavora lì quando succede? È un'altra anima povera costretta a trascorrere del tempo prezioso per scoprire cosa e come farlo? Vorrei provare a convincere il capo di utilizzo __declspec(dllexport). Sarà risparmiare tempo ormai, e forse in futuro.

Io parto dal presupposto che si sono classi e funzioni sovraccaricate esportazione. Se non sei, allora mi piacerebbe esportare le funzioni con C nomi invece. Quei nomi non sono alterati, e non cambieranno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top