Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2013, 00:20   #1
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию va_list x64

Всем доброго время суток!
Давно тут не был, ну не важно.

Небольшая проблема вышла с va_list.

Код:
JMString JM_FormatToString(const JMString& sFormatString, va_list apList)
{
	LPTSTR jm_result = nullptr;
	LPCTSTR jm_format = sFormatString.String();
	INT jm_newlen = _vsctprintf(jm_format, apList);

	if (jm_newlen > 0) 
	{
		jm_result = new TCHAR[jm_newlen++];
		memset(jm_result, 0, jm_newlen);
		_vstprintf_s(jm_result, jm_newlen, jm_format, apList);
	}

	JMString jm_sresult = jm_result;
	delete[] jm_result;
	return jm_sresult;	
}
JMString мой класс строк, зачем он мне нужен вопрос третий.
Мне непонятно, как исправить проблему в 64 разрядной сборке.
в 32 битной, всё на ура....

запуск и вывод виде сообщения.
Код:
JMString test = JM_Format("%i", 4);
JM_ShowMessageWarning(test.String(), 0);
в 32 всё ок!

в 64 из 4 вышла погонь, да и длинна строки возвращаемая функцией
vsctprintf равна 8.


разумеется гуглил, может кто-нить подскажет или ссылучку скинет.

Добавлено позже
P.S.

Код:
JMString JM_Format(const JMString& sFormatString, ...)
{
	va_list jm_ap;
	LPCTSTR jm_format = sFormatString.String();

	va_start(jm_ap, jm_format);
	JMString jm_result = JM_FormatToString(sFormatString, jm_ap);
	va_end(jm_ap);

	return jm_result;
}
Ещё позже......
Код:
#if     !defined(_WIN32)
#error ERROR: Only Win32 target supported!
#endif
увидел в stdarg.h.
но компил у меня эту надпись инорит...
может у вас есть какие нибудь альтернативы?
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 09.12.2013 в 01:20.
Perchik71 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi XE2 x64 asm написанная под x32 преобразование к x64 Ecosasha Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 26.11.2013 22:45
Windows 7 x64 СисТемникс Windows 7 13.09.2010 07:09
Реестр в x64 Xatr Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 17.01.2010 04:00
X64 Debug BioS Общие вопросы C/C++ 6 07.10.2009 20:41