Symbole externe non résolu [Résolu]

Nsjn 5 Messages postés lundi 22 septembre 2008Date d'inscription 5 avril 2009 Dernière intervention - 3 avril 2009 à 18:24 - Dernière réponse : cs_juju12 968 Messages postés samedi 3 avril 2004Date d'inscription 4 mars 2010 Dernière intervention
- 5 avril 2009 à 11:37
Bonjour à tous,

Je tente de créer la dll erthlib.dll à partir du fichier earth.idl sous C++ ( Visual 8 ).
Tout se passe correctement jusqu'à l'edition de liens qui me donne 8 erreurs LNK 2001 pour des fonctions appartenant à rpcproxy.h apparement, et dont voici la liste :
1>EARTH_p.obj : error LNK2001: symbole externe non résolu _CStdStubBuffer2_Release@4

1>EARTH_p.obj : error LNK2001: symbole externe non résolu _NdrStubCall2@16

1>EARTH_p.obj : error LNK2001: symbole externe non résolu _NdrStubForwardingFunction@16

1>EARTH_p.obj : error LNK2001: symbole externe non résolu _IUnknown_Release_Proxy@4

1>EARTH_p.obj : error LNK2001: symbole externe non résolu _IUnknown_AddRef_Proxy@4

1>EARTH_p.obj : error LNK2001: symbole externe non résolu _IUnknown_QueryInterface_Proxy@12

1>EARTH_p.obj : error LNK2001: symbole externe non résolu _NdrOleFree@4

1>EARTH_p.obj : error LNK2001: symbole externe non résolu _NdrOleAllocate@4

1>C:\JNS\GE8\Debug\GE8.dll : fatal error LNK1120: 8 externes non résolus

Quelqu'un saurait il m'en expliquer la raison ? peut être même proposer une solution ?
Dans tous les cas, merci de vos réponses,
nsjn
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
cs_juju12 968 Messages postés samedi 3 avril 2004Date d'inscription 4 mars 2010 Dernière intervention - 3 avril 2009 à 18:52
3
Merci
t'as pas référencé la librairie correspondante : ajoute ceci dans un fichier de code (.c/.cpp/...)

#pragma comment(lib,"RpcRT4.lib")

ça devrait aller mieux

Merci cs_juju12 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de cs_juju12
Nsjn 5 Messages postés lundi 22 septembre 2008Date d'inscription 5 avril 2009 Dernière intervention - 4 avril 2009 à 08:13
0
Merci
Hello,
Merci à juju12. Effectivement cela va nettement mieux comme ça. Au risque d'être casse bonbon...il en reste un de non referencé ! A savoir :
symbole externe non résolu _CStdStubBuffer2_Release@4

Il me semble pourtant que cette fonction appartient à la même librairie. Mais je dois avoir tort. Je vais creuser, mais si tu as une idée..
Merci encore et désolé pour mon retard à répondre, j'étais de sortie hier soir !!
Bye
nsjn
Carpe Diem
Commenter la réponse de Nsjn
cs_juju12 968 Messages postés samedi 3 avril 2004Date d'inscription 4 mars 2010 Dernière intervention - 4 avril 2009 à 14:29
0
Merci
J'ai pas trouvé ce truc-là...on dirait une dérivée de CStdStubBuffer
Peux-tu vérifier si ça vient effectivement de RpcRT (regarde dans le .h)? Sinon, quelle provenance?
Commenter la réponse de cs_juju12
Nsjn 5 Messages postés lundi 22 septembre 2008Date d'inscription 5 avril 2009 Dernière intervention - 4 avril 2009 à 14:51
0
Merci
Hello,
Effectivement, je trouve ce bidule dans rpcproxy.h, dans un paragraphe marqué New Function dont voici un extrait. Ce que je ne comprends pas, c'est la raison pour laquelle ceci n'est pas vu par le pragma que tu m'as conseillé de rajouter. J'ajouterai que ces fichiers .h sont extremement récent, je les ai télécharger il y a une dizaine de jours. Quand ceci tournera, tu auras table ouverte à Lyon. Bye et merci encore.


//Delegation support.




#define




STUB_FORWARDING_FUNCTION NdrStubForwardingFunctionULONG STDMETHODCALLTYPE

CStdStubBuffer2_Release(IRpcStubBuffer *This);

ULONG STDMETHODCALLTYPE

NdrCStdStubBuffer2_Release(IRpcStubBuffer *This,IPSFactoryBuffer * pPSF);




#define




CStdStubBuffer_DELEGATING_METHODS 0, 0, CStdStubBuffer2_Release, 0, 0, 0, 0, 0, 0, 0



/*************************************************************************


End of new functions.


*************************************************************************/


// PROXY_CLSID has precedence over PROXY_CLSID_IS
Commenter la réponse de Nsjn
cs_juju12 968 Messages postés samedi 3 avril 2004Date d'inscription 4 mars 2010 Dernière intervention - 4 avril 2009 à 19:31
0
Merci
Aïe...
La raison elle est simple, c'est que c'est pas une fonction importée... en fait juste une définition...
Bon, j'avoue, je sais pas du tout quoi faire là...
Voici un article (vieux, je sais pas si les infos sont encore valables) qui t'aidera je l'espère :
http://support.microsoft.com/kb/164149/en-us
Commenter la réponse de cs_juju12
Nsjn 5 Messages postés lundi 22 septembre 2008Date d'inscription 5 avril 2009 Dernière intervention - 4 avril 2009 à 19:48
0
Merci
Hello,
Merci pour tout. Je vais regarder cela demain matin et ne manquerai pas de te tenir au courant. Selon le temps qu'il me faudra, je t'avertirai peut être un peu plus tard, car je pars demain soir ( je suis routier, gros camion, vroum,vroum...)
Merci encore et à très prochainement.
nsjn
Commenter la réponse de Nsjn
Nsjn 5 Messages postés lundi 22 septembre 2008Date d'inscription 5 avril 2009 Dernière intervention - 5 avril 2009 à 08:33
0
Merci
Hello,


eureka peut être. J'ai pu générer la dll sans erreur. En fait j'ai forcé C++ à travailler sans utiliser le stdafx.h et à traiter le code comme étant du C.


Cette idée m'est venue en considérant le code généré par MIDL, à savoir du h et du C classique.
Toutefois la directive que tu m'as indiquée reste essentielle au niveau du fichier earth_p.c
Bien, maintenant il  me reste à inclure ceci dans une grosse app en C V6. Encore quelque moment interressant en perspective.
En tous cas merci de ton aide et petit rappel : si tu passes à Lyon, table ouverte.
Bon week end
nsjn
Carpe Diem
Commenter la réponse de Nsjn
cs_juju12 968 Messages postés samedi 3 avril 2004Date d'inscription 4 mars 2010 Dernière intervention - 5 avril 2009 à 11:37
0
Merci
Bien joué. Bonne continuation, et bon voyage!
Commenter la réponse de cs_juju12

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.