Show
Ignore:
Timestamp:
05/01/09 10:49:19 (5 years ago)
Author:
robert
Message:

From Michael Platings, compile fix for the following problem report on osg-users:

"the latest SVN revision cannot be build under Windows if ?OSG_USE_UTF8_FILENAME? config option is enabled. The error occurs in ?FileUtils?.cpp? file, line 663, since there is no UNICODE-capable version of the ?GetProcAddress?? function. The ?OSGDB_WINDOWS_FUNCT_STRING? makro is defined as follows in that case

#define OSGDB_WINDOWS_FUNCT_STRING(x) L ## #x L"W"

Thus the second parameter cannot be converted from wchar_t to LPCSTR. Should we convert the second parameter from wchar_t* to LPCSTR or use the same definition for the ?OSGDB_WINDOWS_FUNCT_STRING? makro in both cases?

The second error occurs in the same file, line 669. The second parameter for the ?pGetModuleHandleEx? function should be defined as wchar_t, but it?s defined as ?static char static_variable? in the line 667."

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/src/osgDB/FileUtils.cpp

    r10024 r10129  
    8888#define OSGDB_FILENAME_TEXT(x) L ## x 
    8989#define OSGDB_WINDOWS_FUNCT(x) x ## W 
    90 #define OSGDB_WINDOWS_FUNCT_STRING(x) L ## #x L"W" 
     90#define OSGDB_WINDOWS_FUNCT_STRING(x) #x "W" 
    9191typedef wchar_t filenamechar; 
    9292typedef std::wstring filenamestring; 
     
    664664            { 
    665665                HMODULE thisModule = 0; 
    666                 static char static_variable = 0;    // Variable that is located in DLL address space. 
     666                static filenamechar static_variable = 0;    // Variable that is located in DLL address space. 
    667667 
    668668                if( pGetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, &static_variable, &thisModule) )