Rendere non funzionanti i programmi "del passato" obbliga ad aggiornare. Siccome gli aggiornamenti sono a pagamento...
La documentazione alla quale faccio riferimento risale a Win32 nella versione di Windows 98 (la più recente che son riuscito a trovare in unico file .hlp facilmente scaricabile). In quella documentazione si legge:
==================================
GetModuleFileName
The GetModuleFileName function retrieves the full path and filename for the executable file containing the specified module.
Windows 95: The GetModuleFilename function will return long filenames when an application's version number is greater than or equal to 4.00 and the long filename is available. Otherwise, it returns only 8.3 format filenames.
DWORD GetModuleFileName(
HMODULE hModule, // handle to module to find filename for
LPTSTR lpFilename, // pointer to buffer for module path
DWORD nSize // size of buffer, in characters
);
Parameters
hModule
Identifies the module whose executable filename is being requested. If this parameter is NULL, GetModuleFileName returns the path for the file used to create the calling process.
lpFilename
Points to a buffer that is filled in with the path and filename of the given module.
nSize
Specifies the length, in characters, of the lpFilename buffer. If the length of the path and filename exceeds this limit, the string is truncated.
Return Values
If the function succeeds, the return value is the length, in characters, of the string copied to the buffer.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
If a module is loaded in two processes, its module filename in one process may differ in case from its module filename in the other process.
See Also
GetModuleHandle(), LoadLibrary()
====================
"The string is truncated" non necessariamente significa che il terminatore è assente, ed è comunque assurdo che in una versione manchi e in un'altra sia presente, documentazione o non documentazione, perché il "doppio comportamento" rischia di mandare nel pallone programmi non pensati per fare fronte esplicitamente all'ambiguità. Siccome non riesco a pensare che un'intera squadra di esperti della levatura di quelli che lavorano a un sistema operativo come Windows possa fare errori del genere, non mi resta che pensare che si tratti di "direttive dall'alto" impartite per ragioni di, diciamo così, marketing.
Comunque sia, fuori d'ogni (inutile) polemica e di affermazioni che potrebbero essere illazioni (le mie), sapresti indicarmi dove trovare una documentazione altrettanto compatta da scaricare in quattro e quattr'otto senza dover installare interi SDK? Io non son riuscito a reperirne, e consultare l'MSDN in linea è scomodissimo. Al momento mi sarebbe molto utile un file .hlp o .chm sulla falsariga di quello che già ho per Windows 98 (son riuscito a metter le mani solo su quello per GDI+ e mi è utilissimo).
|