2010-05-05 6 views
1

Je convertis la fonction suivante. Mais la nouvelle fonction convertie n'est pas exécutée. Des idées?Convertir __declspec en _export C++

Old Fonction
extern "C"
DWORD __declspec (dllexport) FAR MyFunc (char * valeur1, int * valeur2)

Nouvelle fonction
extern "C"
DWORD _export FAR MyFunc (char * value1, int * value2)

+0

des erreurs? avez-vous essayé de le franchir avec un débogueur? –

+0

Quel est le problème avec '__declspec (dllexport)'? Quelle est la définition de '_export'? Vérifiez si vous utilisez la DLL correcte et si le symbole a été exporté. – jweyrich

+0

Le problème est résolu. Le programme a été écrit en Delphi C++ Builder. Quand j'ai compilé le programme, le compilateur fournit un index spécifique pour cette fonction. Mais j'appelais cette fonction en utilisant l'index fixe. Merci les gars. – sMah

Répondre

1

_export est obsolète dans les versions plus récentes de Visual C++, voir here.

Permettez-moi de citer this article: Il est impossible de maintenir une source unique pour 16 bits et code 32 bits en remplaçant simplement __export avec _declspec() parce _declspec() est un modificateur de classe de stockage et __export est un type modificateur. L'article indique que _export ne fonctionne que pour les programmes 16 bits. Vous devriez donc produire un programme et une DLL 16 bits.

+0

Merci pour votre réponse et vos infos. – sMah

+0

Tous les liens ici sont maintenant inexistants. – ebyrob