De l'aide pour un prog qui affiche une page web ! [VC++] - Programmation
Marsh Posté le 03-04-2001 à 02:17:16
Si Seismes.html et l'exe sont dans le même répertoire, je crois qu'il faudrait écrire :
m_cExplorer1.Navigate("Seismes.html", NULL, NULL, NULL, NULL);
Salutations
Marsh Posté le 03-04-2001 à 09:44:08
Ouais, j'avais oublier de le préciser, ça ne marche pas non plus ça, ça me fait une DNS Error de IE5...
Marsh Posté le 03-04-2001 à 12:06:27
Il faut recupperer le chemin du programme qui execute cette fonction et le rejouter au nom de fichier.
IE considere que s'il n'y a pas de lettre de lecteur, c'st une adresse internet.
Marsh Posté le 03-04-2001 à 16:19:44
C bien ce que je me disais, mais comment je fais pour récuperer le chemin...???
Je crois que je vais peter un plomb avec ce programme !
Marsh Posté le 03-04-2001 à 16:29:32
y'a un truc du genre GetCurrentDir qui marche bien ou meme une autre fonction dont je ne souvient plus du nom qui te donne le repertoire ou se trouve le programme en train de s'executer.
et ensuite
file://f|/...
f: lettre du lecteur
.... : chemin
et la si ca ne marche pasc'est qu'il y a une merde
Marsh Posté le 03-04-2001 à 22:58:23
Justement, il y a la fonction GetCurrentDirectory(...,...), mais dans mon Buffer, elle ne me renvoit rien, voici le code fautif :
char *pszPath = NULL;
int iBuffer = 60;
GetCurrentDirectory(iBuffer, pszPath);
CString strChemin = pszPath;
AfxMessageBox(strChemin); // CA C'EST VIDE !
Apres j'adapterai le resultat de strChemin pour la premier paramètre de ceci :
m_cExplorer1.Navigate("Seismes.html", NULL, NULL, NULL, NULL);
Mais bon, pourquoi n'ai-je rien dans pszPath ???
Merci de votre aide
Marsh Posté le 03-04-2001 à 23:13:48
Parce que tu fais n'importe quoi.
voir http://msdn.microsoft.com/library/ [...] o_6g6x.htm
Citation : |
Marsh Posté le 03-04-2001 à 23:22:08
AHahahah, t'es un marrant toi
Je fais n'importe quoi, je m'en doutais un peu, sinon, je poserai pas la question...je suis désolé, moi je suis pas né avec la science infuse !
Alors au lieu de me filer l'adresse d'une page que j'ai dans la bibliothèque MSDN, et que de toute façon j'ai bien compris, dis moi plutôt concrètement ce qui ne vas pas dans le code...Je débute moi, désolé
[edit]--Message édité par Rebel--[/edit]
Marsh Posté le 03-04-2001 à 23:53:54
Salut Rebel,
J'ai pas encore trouvé pourquoi GetCurrentDirectory déconne mais j'ai testé le code suivant et il fonctionne :
CString sFileName, sFileDir;
GetModuleFileName(AfxGetInstanceHandle(), sFileName.GetBuffer(256), 256);
sFileName.ReleaseBuffer();
int nPos = sFileName.ReverseFind('\\');
if (nPos != -1)
{
sFileDir = sFileName.Left(nPos);
MessageBox(sFileDir);
}
Voilà. J'espère que ca aide en attendant mieux !
Flying
Marsh Posté le 03-04-2001 à 23:56:17
Les smileys trafiquent le code ... faut remplacer le petit bonhomme jaune par "parenthèse fermée".
Flying
Marsh Posté le 04-04-2001 à 00:07:16
J'ai trouvé ca aussi :
TCHAR szName[_MAX_PATH];
::GetCurrentDirectory(_MAX_PATH, szName);
MessageBox(szName);
qui fonctionne mais ne retourne le chemin que jusqu'au répertoire parent !!! bizarre bizarre !!!
Flying
Marsh Posté le 04-04-2001 à 00:20:14
On peut aussi faire comme ca :
TCHAR szFullPath[MAX_PATH];
TCHAR szDir[_MAX_DIR];
TCHAR szDrive[_MAX_DRIVE];
::GetModuleFileName(NULL,szFullPath,MAX_PATH);
_splitpath(szFullPath,szDrive,szDir,NULL,NULL);
CString path = szDrive;
path = path + szDir;
MessageBox(path);
On utilise la macro _splitpath à la place de Find du premier exemple.
Dans le premier cas, on a / pour finir le chemin, ici pas.
Bon je crois que je m'arrête pour ce soir
Flying
Marsh Posté le 04-04-2001 à 00:45:11
Le dernier des derniers, maintenant je vais pieuter :
CString sPath;
int nLen = 255;
GetCurrentDirectory(nLen, sPath.GetBuffer(256));
sPath.ReleaseBuffer();
MessageBox(sPath);
Encore une fois, ca retourne jusqu'au répertoire parent...
Bye
Flying
[edit]--Message édité par Flying--[/edit]
Marsh Posté le 04-04-2001 à 02:33:24
Rebel a écrit a écrit : AHahahah, t'es un marrant toi Je fais n'importe quoi, je m'en doutais un peu, sinon, je poserai pas la question...je suis désolé, moi je suis pas né avec la science infuse ! Alors au lieu de me filer l'adresse d'une page que j'ai dans la bibliothèque MSDN, et que de toute façon j'ai bien compris, dis moi plutôt concrètement ce qui ne vas pas dans le code...Je débute moi, désolé |
Si tu connaissais le C (et l'anglais) tu aurais vu ton erreur rapidement. La fonction GetCurrentDirectory a besoin d'un pointeur sur un emplacement mémoire pour stocker le chemin.
Donc il faut lui en donner un. Flying a donner diverses méthodes (un tableau suffisamment grand de caractère, le buffer d'un objet Cstring) pour y arriver.
Je pense qu'il faut que tu bosses les bases du C avant de te lancer dans la prog windows sinon tu vas galérer. Et si tu veux faire de la prog win immédiatement, essaie plutôt Visual Basic.
Marsh Posté le 04-04-2001 à 08:10:43
Si tu connaissais le C (et l'anglais)
Tu t'es leve du pied gauche ce matin? On dirait du nofret
A+,
Marsh Posté le 04-04-2001 à 08:15:15
En ligne de commande, le répertoire courant est ".", c'est peut etre une connerie, mais ça ne marcherai pas en mettant :
m_cExplorer1.Navigate(".\Seismes.html" ...
vw
Marsh Posté le 04-04-2001 à 08:51:04
Je vous remercie tous de me filer un coup de main, surtout Flying, qui a du chercher toute la nuit pour moi et aussi Verdoux, Combi, et les autres...
Simplement, Verdoux, sache que je maîtrise tout de même relativement bien l'anglais, mais qu'en C, je suis nul, je le sais, je débute, comme je l'ai déjà dit...il faut bien passer par là pour apprendre, alors j'expérimente...rapppelle toi quand tu as débuté, c'était surement pareil Bon, sans rancunes !
Allez, je vais tester tous les codes que vous me proposez, merci encore...
[edit]--Message édité par Rebel--[/edit]
Marsh Posté le 03-04-2001 à 00:14:18
AU SECOURS, je vais devenir fou
J'ai voulu me lancer dans la conception d'un petit programme tout bête qui contient un contrôle ActiveX IE5, pour afficher une page web...
Le problème c'est que je dois mettre ce programme sur un CD...et que la page n'est jamais trouvée.
Voici le code :
m_cExplorer1.Navigate("Cours\\Seismes.html", NULL, NULL, NULL, NULL);
Dans l'initialisation de la boite de dialogue : le dossier "Cours" se trouvera à la racine du CD, et le fichier "Seismes.html" à l'intérieur du dossier...je mettrai l'exe dans le même répertoire, mais il me met la page d'erreur IE5, et dans les propriétés, il affiche qu'il cherche a ouvrir "res://D:\WINNT\system32\shdoclc.dll/navcancl.htm#http://cours/Seismes.html" : je ne peux pas mettre de chemin prédéfini style "D:\cours\seismes.html" car je ne connais pas la lettre du cdrom sur lequel le programme sera exécuté...et pourtant, en faisant cela ça marche !!
AIDEZ-MOI, c'est très important pour moi !