Salut,
J'ai fait un programme qui visualise des fichiers de scenes 3D.
Le chargement de la scene se fait ainsi.
g_pScene->LoadScene(strInputName);
avec strInputName le nom absolu du fichier à charger.
Si je lance l'exe par double clique, je veux qu'on me demande quel fichier charger.
Si le deplace un fichier sur l'icone de l'exe, je veux que le fichier soit chargé.
Donc j'ai fait préalabrement:
char strInputName[MAX_PATH];
memset(strInputName, 0, MAX_PATH);
// Get input
if (*lpCmdLine == 0)
{
strcat(strInputName, "*.mcf");
if (GetFileName( strInputName,
"Select a Mesh Concept File",
"Mesh Concept File (*.mcf)\0",
OFN_FILEMUSTEXIST ) == FALSE)
return 0;
}
else
{
// Get elements
char* pStr = lpCmdLine;
while (*pStr)
{
if (*(pStr++) == '"')
{
char* pStart = pStr;
while (*pStr != '"' && *pStr != 0) { pStr++;}
*pStr = 0;
memcpy(strInputName, pStart, DWORD(pStr-pStart));
}
}
}
Bref, je charge un même fichier dans les 2 cas, les strInputName sont IDENTIQUES.
Pourtant le résultat à l'écran est DIFFERENT (manque les textures si drag and drop) !
Quelles lignes de code ci-dessus sont suceptibles de modifier des valeurs qui ruinent le chargement des textures.
J'utilise DirectX 9.0c mais pas la peine de taper dessus.
Merci !
PS:
BOOL GetFileName(char* pszFileName, char* pszTitle, char* pszFilter, DWORD dwFlags)
{
OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = NULL;
ofn.lpstrFilter = pszFilter;
ofn.nFilterIndex = 1;
ofn.lpstrFile = pszFileName;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = MAX_PATH;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrTitle = pszTitle;
ofn.Flags = dwFlags;
if (GetOpenFileName(&ofn) != TRUE)
return FALSE;
return TRUE;
}