begin process at 2012 05 29 05:35:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

exports Shell Extension


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

exports Shell Extension

dimanche 16 mai 2004 à 12:45:06 | exports Shell Extension

guimou

Hello tout le monde, j'ai un problème avec une Shell Extension. Les fonctions sont déclarées avec __stdcall et j'ai mis un .def avec le nom de la lib et les exports que je voulais faire, je l'ai mis dans les fichiers sources comme dans l'exemple et comme dans les autres shell extensions open source ke j'ai pu trouver sur le net... seulement voilà, ces fonctions (DllCanUnloadNow, DllGetClassObject) ne sont jamais appelées ! (DllMain l'est, en revanche, donc apparemment windows a bien compris ke je veux utilser cette DLL, ca doit donc pas etre une erreur de registre)

et sinon, avec un programme de test, je fais un GetProcAddress(hmod, "DllCanUnloadNow") et il me renvoie 0... donc apparemment la fonction n'a pas été exportée... ya-til quelque chose de spécial à faire avec le .def, une option à rajouter ?
Quand je rajoute __declspec(dllexport) sur ces fonctions, il me sort un warning comme quoi le dllexport a été ignoré, apparemment c incompatible avec __stdcall

Quelqu'un saurait-il comment faire pour que les fonctions soient bien exportées ?
Merci d'avance
guimou

PS: j'utilise pas MFC ou autre
dimanche 16 mai 2004 à 14:35:40 | Re : exports Shell Extension

ymca2003

Avec Visual, il y a un prog nommé Depends.exe (répertoire Common ou qqch comme ça) qui permet de savoir quelles sont les fct exportées et les Dlls importées d'un prog.

en ouvrant ton prog dedans tu pourras voir si tes fct sont exportées avec le bon nom.

sinon voici un exemple de déclaration:

.def (les @n et private ne sont pas nécessaire voire interdit selon le compilo):

EXPORTS
DllCanUnloadNow @1 PRIVATE
DllGetClassObject @2 PRIVATE
DllRegisterServer @3 PRIVATE
DllUnregisterServer @4 PRIVATE

.cpp :

HRESULT __stdcall DllCanUnloadNow()
{
...
}


HRESULT __stdcall DllGetClassObject(const CLSID& clsid, const IID& iid, void** ppObj)
{
...
}

HRESULT __stdcall DllRegisterServer()
{
...
}

HRESULT __stdcall DllUnregisterServer()
{
...
}
dimanche 16 mai 2004 à 15:14:08 | Re : exports Shell Extension

guimou

pour Depends.exe -> merci je ne connaissais pas et ça va beaucoup me servir

bon le code, c'est a peu près bon (sauf ke ya pas les deux dernieres fonctions) mais c'est déclaré pareil

mais ya vraiment un probleme avec les exports chez moi :
j'ai fait un test tout simple de DLL
main.cpp

#include "Windows.h" // pas très utile d'ailleurs

extern "C" // j'ai essayé avec et sans
int __stdcall testouille(int a, int b)
{
return (a+b);
}

main.def :

EXPORTS
toto @1 PRIVATE

hé bin il exporte rien du tout !!!!!
tu sais de quoi ça peut provenir ?
Merci d'avance, @+
guimou
dimanche 16 mai 2004 à 15:16:08 | Re : exports Shell Extension

guimou

euh lol g changé le nom mais c'est bien le meme dans les deux !
dimanche 16 mai 2004 à 16:32:29 | Re : exports Shell Extension

guimou

C'est bon j'ai trouvé, c'était vraiment une erreur tout con : j'avais pas mis /DEF dans le linker, j'avais juste mis le fichier dans le groupe "source"

maintenant ça marche...
Merci encore pour Depends.exe !


Cette discussion est classée dans : shell, extension, fonctions, apparemment, exports


Répondre à ce message

Sujets en rapport avec ce message

attendre que le shell soit fini C++ [ par McK_N ] Salut,je veux appeler la fonction Shell et je veux que mon programe arrête jusqu'à ce que le shell soit terminé.Comment puis-je le faire avec la fonct AIDE: CHERCHE TUTORIEL SUR LES FONCTIONS GRAPHIQUES [ par Mmuller57 ] je CHERCHE un TUTORIEL sur LES FONCTIONS GRAPHIQUES en C++(tracer une ligne, un cercle, un carrée, un rectangle, un polygone et le tout en C++ !). Je Afficher un dialog modal dans une dll d'extension... [ par MadPlop ] J'ai cree la DLL avec une classe de dialogue (avec la ressource de dialogue associee) et une autre classe. Les fonctions de ces classes fonctionnent s liste de fonctions [ par niconico ] quelqu'un aurait-il l'adresse d'un site ou je pourrait trouver la liste des fonctions en C++; ou au moins celles relatives a la creation, modification problèmes liens entre fichiers C et C++ dans un projet Visual C++ 6.0 [ par nico ] J'ai récupéré un projet contenant des fichiers écrits en C. Le fichier "principal" de ce projet également écrit en C fait appel à des fonctions se tro codes C++ pour TAPI et MAPI [ par Francky ] Bonjour,Je recherches des codes sources C++ pour les les fonctions TAPI (téléphone) et fonctions MAPI (mails).Merci d'avance. Comment utiliser InternetOpen(...), CloseHandle(...) et autres fonctions se rapportant au Web ? [ par Tiot Seb ] Salut amis programmeurs sous Visual C++!J'ai besoin, pour un projet de stage, de pouvoir, ouvrir et fermer Internet Explorer. En fait, je dois créer u classes ou juste fonctions ? [ par madVinz ] Salut!Comment choisir entre faire des classes ou juste des fonctions ???merci, @+ <bios.h>aidez moi aussi pour les fonctions geaphiques sous dev c++ 4.0 [ par riderpro ] Voila il me faut pour dev c++ 4.0 sinon je ne peux pas faire mes progs pleas entrz en contact pour coopération Tableau de correspondance des fonctions c++ et de leur fichier #include [ par guguy ] BonjourJ'aimerais savoir s'il serait possible de trouver un tableau de correspondance entre les fonctions c++ et leur fichier #include (ex : cout -> i


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales