Re[2]: AndroidNDK: arm-linux-androideabi-g++: vsnprintf, va_
От: ProGameDev  
Дата: 04.03.13 18:45
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, ProGameDev, Вы писали:


E>
PGD>>vslprintf( char* buffer, size_t count, const char* fmt, const void* va_list_arg )
PGD>>{
PGD>>    int ret;  
PGD>>    ret = vsnprintf( buffer, count-1,  fmt, va_list (va_list_arg) ); // здесь проблема с GCC-ARM 
E>

PGD>>_xxxxx.cpp:98:71: error: invalid cast from type 'const void*' to type '__va_list'
PGD>>Build tool error : Command "X:/Tool/ga/android-ndk-r8d/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin/arm-linux-androideabi-g++.exe" returned error 1

E>А с чего ты взял, что va_list кастится к указателю? Это от платформы зависит, вообще-то.

E>Посмотри в версию хедеров для ARM -- там скорее всего структура какая-то из двух полей, например...

Да конечно пересмотрел хедера. Там в итоге это __builtin_va_list.

E>В целом не ясно, зачем вообще представлять va_list как const void*?


Платформонезависимость.
Здесь имеется ввиду, что
#ifdef PLATFORM_X
ret = vsnprintf( buffer, count-1,  fmt, va_list (va_list_arg) );
#elseif PLATFORM_Y
ret = _vsnprintf( майкрасофт стайл типа )
#elseif PLATFORM_Z
ret = ...
#endif

добавлена разметка
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.