IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Rechercher un lien


Sujet :

Visual C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Rechercher un lien
    Bonjour,

    Voilà j'avais déjà posté un message récemment pour u autre problème. J'y expliquait ma situation. Dans ma boite, je reprend un programme C++ que plus personne ne sait faire fonctionner depuis que le créateur est parti en 2006. Je suis le seul à savoir faire des macros en VBA, donc logique, je me retrouve sur ce programme en C++ alors que je n'y ait pas touché depuis l'initiation C++ dans mon école il y a 4 ans .

    Bref, en ce moment il y a un truc qui ne marche pas : quand je lance le programme, une fenetre s'affiche. Elle me propose différentes options, différents boutons sur lesquels cliquer, qui eux même vont aller utiliser des données dans un fichier excel. Le problème, c'est que ce fichier excel était dans le dossier contenant le code, et que ce dossier se trouvait sur le bureau de la personne qui a développé le projet. Ce qui fait que le lien pour aller chercher le fichier n'est plus à jour.

    L'erreur que Visual m'affiche est :
    Une exception non gérée du type 'System.Data.OleDb.OleDbException' s'est produite dans System.Data.dll
    Informations supplémentaires*: 'C:\Documents and Settings\stagiaire.nomdelaboite\Bureau\nomdudossier\inputs_xls.xls' n'est pas un chemin d'accès valide. Assurez-vous que le nom du chemin d'accès est correct et qu'une connexion est établie avec le serveur sur lequel réside le fichier.
    Le problème, c'est que je dois changer "stagiaire" par mon nom.
    J'ai recherché le fameux fichier "system.data", et j'en vois plusieurs, que je ne peux pas ouvrir.

    Quelqu'un a-t-il une idée ? Si vous souhaitez des précisions, je suis là bien sur.

    Merci d'avance !

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    Tu dois chercher dans les fichiers du projet C++: Un petit Find In Files avec avec le chemin (ou une partie du chemin) devrait te permettre de trouver la référence.

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Tu dois chercher dans les fichiers du projet C++: Un petit Find In Files avec avec le chemin (ou une partie du chemin) devrait te permettre de trouver la référence.
    merci, mais :
    - faire un ctrl f avec dedans "inputs_xls" me donne... le fichier inputs_xls.
    - faire un ctrl f avec "System.data.dll" ne me donne... rien quand je recherches dans le dossier dans lequel sont les fichiers de code. Par contre, ça me donne pas mal de choses quand je cherches dans mon C. Il y a 2 fichiers de même noms, qui sont dans des dossiers du type framework_files version 1.... ou 2,0,5245454 etc.
    Et comme c'est des fichier dll, je peux pas les ouvrir pour les modifier !

    Tu as des idées ?

    merci

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    Je n'ai pas dit Ctrl-F, j'ai dit Find In Files : Ctrl-Shift-F sous certaines versions de Visual C++.

    Et tu te moques de System.Data.dll : Le problème n'est pas dedans.

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut ok
    ok je connaissais pas. Et puis surtout, je voyais pas ça comme ça. En fait les chemins en sot pas écris, mais générés par des instructions du type :
    DEFINE_KNOWN_FOLDER(FOLDERID_Videos, 0x19987B1A, 0x12B5, 0x766B, 0x87, 0x1E, 0xBB, 0x7C, 0x94, 0xE4, 0xDF, 0xFF); (j'ai mis des numéros au hasard).
    Il y a une trentaine de lignes de ce type à la suite. J'essaye de comprendre tout ça, et si besoin je reviens ici.
    Merci !

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    Recherche directement le nom du stagiaire dans le projet.

    Il est forcément quelque part, si tu exécutes le programme en tant que toi-même et qu'il va quand même chercher le document chez lui.

  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    c'est bien ça qui est étonnant. J'ai beau rechercher son nom, son prénom, le mot "stagiaire", rien. Rien du tout. Le lien que le programme ne trouve pas est de la forme 'C:\Documents and Settings\stagiaire.LVMH\Bureau\nomdudossier\inputs_xls.xls' , et je ne vois pas "LVMH", ou peut être le mot "stagiaire", ou encore l'expression "stagiaire.LVMH".
    Rien, nulle part. Ou en out cas, rien avec le ctrl + shift + f.

    Ce qui me fait dire que cette adresse a été crée par un moyen détourné. Il n'y a pas des moyens du type une adresse D5AFDC3A-ED2A-412C-C019-7FE49B87D661 ?

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    Les Known Folders existent pour l'utilisateur courant, ou pour divers dossiers système, mais jamais (du moins par défaut) pour un utilisateur donné.

    Cherche aussi le nom du stagiaire dans la base de registre, ça pourrait être utile.

    PS: Poste aussi la pile d'appels de l'exception. J'ignore si tu peux la voir dans le debugger de Visual aussi facilement en C++ qu'en C#, mais si tu ne peux pas, mets un try/catch autour du plantage et affiche directement l'exception dans une MessageBox ou la console.

  9. #9
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Pourquoi le nom dans la base de registre ?

    Pour ton PS, je le vois, mais j'ai à peu pres 2 pages. Si c'est normal, je te la posterai demain.

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    Je conseille de chercher dans la base de registre, car certains trucs y sont enregistrés concernant les sources de données: Je pense notamment à ODBC, et je me demande s'il y a un truc un peu similaire pour OLEDB...

  11. #11
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut pile des appels

    System.Data.dll!System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult + 0x10c octets
    System.Data.dll!System.Data.OleDb.OleDbCommand.ExecuteCommandText + 0xc1 octets
    System.Data.dll!System.Data.OleDb.OleDbCommand.ExecuteCommand + 0x31 octets
    System.Data.dll!System.Data.OleDb.OleDbCommand.ExecuteReaderInternal + 0x6b octets
    System.Data.dll!System.Data.OleDb.OleDbCommand.ExecuteReader + 0x70 octets
    System.Data.dll!System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader + 0x5 octets
    System.Data.dll!System.Data.Common.DbDataAdapter.FillInternal + 0x8e octets
    System.Data.dll!System.Data.Common.DbDataAdapter.Fill + 0x8a octets
    System.Data.dll!System.Data.Common.DbDataAdapter.Fill + 0x57 octets
    > Perpetual CMS.exe!PerpetualCMS::FormCalibrationSwaptions::InitialisatonCalibrationSwaptions() Ligne 902 + 0x14 octets C++
    Perpetual CMS.exe!PerpetualCMS::FormCalibrationSwaptions::FormCalibrationSwaptions() Ligne 56 + 0x8 octets C++
    Perpetual CMS.exe!PerpetualCMS::Form1::calibrationSwaptionsToolStripMenuItem_Click(System::Object^ sender = 0x01347e0c, System::EventArgs^ e = 0x013862cc) Ligne 281 + 0x13 octets C++
    System.Windows.Forms.dll!System.Windows.Forms.ToolStripItem.RaiseEvent + 0x41 octets
    System.Windows.Forms.dll!System.Windows.Forms.ToolStripMenuItem.OnClick + 0x51 octets
    System.Windows.Forms.dll!System.Windows.Forms.ToolStripItem.HandleClick + 0xc7 octets
    System.Windows.Forms.dll!System.Windows.Forms.ToolStripItem.HandleMouseUp + 0x220 octets
    System.Windows.Forms.dll!System.Windows.Forms.ToolStripItem.FireEventInteractive + 0x87 octets
    System.Windows.Forms.dll!System.Windows.Forms.ToolStripItem.FireEvent + 0x122 octets
    System.Windows.Forms.dll!System.Windows.Forms.ToolStrip.OnMouseUp + 0xcf octets
    System.Windows.Forms.dll!System.Windows.Forms.ToolStripDropDown.OnMouseUp + 0x25 octets
    System.Windows.Forms.dll!System.Windows.Forms.Control.WmMouseUp + 0x2f7 octets
    System.Windows.Forms.dll!System.Windows.Forms.Control.WndProc + 0x526 octets
    System.Windows.Forms.dll!System.Windows.Forms.ScrollableControl.WndProc + 0x45 octets
    System.Windows.Forms.dll!System.Windows.Forms.ToolStrip.WndProc + 0x71 octets
    System.Windows.Forms.dll!System.Windows.Forms.ToolStripDropDown.WndProc + 0xa2 octets
    System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.OnMessage + 0xd octets
    System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.WndProc + 0x36 octets
    System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.DebuggableCallback + 0x57 octets
    [Transition Natif à Managé]
    [Transition Managé à Natif]
    System.Windows.Forms.dll!System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop + 0x2f1 octets
    System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner + 0x17d octets
    System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoop + 0x53 octets
    System.Windows.Forms.dll!System.Windows.Forms.Application.Run + 0x2e octets
    Perpetual CMS.exe!main(array<System::String^> ^ args = {Length=0}) Ligne 44 C++

  12. #12
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    Ben, je pensais que ça m'apporterait quelque chose, mais non.

  13. #13
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    pour la base de registre, j'ai recherché le mot "stagiaire" je tombes sur différents fichiers du type REG_SZ. Je vois par exemple un fichier appelé "Find 4", avec comme données "stagiaire.lvmh" (je prends toujours le même exemple de boite)

  14. #14
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    "find 4", ça risque d'être simplement ton historique de recherche.

    Ben si tu trouves pas, tu risques de devoir te plonger profondément dans le code...
    Genre au niveau de InitialisatonCalibrationSwaptions()...

  15. #15
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    en fait, le problème arrive au moment où il y a la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    OleDb::OleDbConnection^ connection = gcnew OleDb::OleDbConnection();
    connection->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"inputs_db.mdb\"";
    				 
    connection->Open();
    
    OleDb::OleDbCommand^ commande = gcnew OleDb::OleDbCommand();
    commande->Connection = connection;
    commande->CommandText = "SELECT * FROM swaptions_ATM";
    commande->CommandType = System::Data::CommandType::Text;
    
    OleDb::OleDbDataAdapter^ adapter = gcnew OleDb::OleDbDataAdapter();
    adapter->SelectCommand = commande;
    
    DataSet^ dataset = gcnew DataSet();
    adapter->Fill(dataset);
    DataTable^ table = dataset->Tables[0];


    D'après ce que je comprends, ceci sert à aller chercher des infos dans un fichier extérieur. Le fichier va dans un fichier access, lui même lié à des bases situées dans l'adresse introuvable. Donc le problème ne vient pas de visual, du code, ou autre, mais de lemplacement des fichiers. Certains ne sont pas accessibles, et le créateur du projet est parti sans tout mettre à la portée de tout le monde. Je m'en vais donc chercher cet accès.


    Je te tiendrai au courant si je trouve (et puis certainement si j'ai d'autres questions...)

    Merci beaucoup pour ton aide !

  16. #16
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    Il doit y avoir quelque part, soit dans les fichiers soit dans le registre, quelque chose qui déclare une Data Source nommée "inputs_db.mdb" et indique qu'elle désigne le fichier "C:\Documents and Settings\stagiaire.nomdelaboite\Bureau\nomdudossier\inputs_xls.xls".

    Par exemple, essaie de voir si tu n'as pas un fichier nommé inputs_db.mdb...

  17. #17
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    ok trouvé.
    Dans mon dossier, il y avait un fichier access, qui contenait des tables dont le nom correspondait. Mais le nom n'était pas bon, et surtout le fichier était lié à un fichier XL non accessible. Sauf que j'en avait une copie quelque part. Restait donc à refaire un fichie access, lié à mon fichier XL.
    Bref, c'est quasiment bon. Sauf que j'ai reconstruit des trucs, donc je ne sais pas si tuot était exactement comme ce que j'ai fait. Et tout ne marche pas encore parfaitement.

    J'y réfléchis demain et les jours suivant... Merci pour tes réponses !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche de lien sur la 3D iso.
    Par blastmanu dans le forum 3D
    Réponses: 2
    Dernier message: 01/05/2007, 12h59
  2. Moteur de recherche de liens casses
    Par tonioz dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 11/07/2006, 12h34
  3. Réponses: 8
    Dernier message: 24/11/2005, 04h53
  4. [Design patterns] recherche de lien
    Par r0d dans le forum Design Patterns
    Réponses: 8
    Dernier message: 11/02/2005, 10h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo