powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как передать все необязательные параметры (...) из одной функции в другую с (...)?
4 сообщений из 4, страница 1 из 1
Как передать все необязательные параметры (...) из одной функции в другую с (...)?
    #32482466
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть функция с переменным числом параметров:
void f(int n, ...);
Понимаю, что нехорошо, но хочется передать это ... в CString::FormatMessage().

А не получается...

Как передать в ::FormatMessage, я понимаю. Но лень :)

Проблема не важная и не срочная, но мне интересно.
...
Рейтинг: 0 / 0
Как передать все необязательные параметры (...) из одной функции в другую с (...)?
    #32483651
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
void First(char *szFmt,...)
{
	char szText[MAX_PATH];
	va_list		a;
	va_start(a,szFmt);
	wvsprintf(szText,szFmt,a);
	CString cstr;
	сstr.Format( "%s" , szText);
}


так пойдёт? :)
...
Рейтинг: 0 / 0
Как передать все необязательные параметры (...) из одной функции в другую с (...)?
    #32486099
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разумеется, не пойдёт.

Во-первых, это ответ не на тот вопрос. Меня интересует не как обойтись в данном случае, а решаема ли эта проблема вообще.

Во-вторых, wvsprintf() НЕ эквивалентна FormatMessage().
...
Рейтинг: 0 / 0
Как передать все необязательные параметры (...) из одной функции в другую с (...)?
    #32487128
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все проблемы решаемы :)

Вопрос в том, скоко уйдёт сил и времени.

Можно, конечно, самому напрямую в стек лезть.
Потому как в каждый конкретный вызов FormatMessage переменные забиваются статическим порядком.
Но вообще надо подумать... может можно как-то и объехать.
Например по-элементрым разбором.
То есть взял первый элемент из листа, посмотрел его тип и сказал, к примеру

cstrTmp.FormatMessage("%1!d!", iVar);
cstrTarger.FormatMessage(%1%%2%,cstrTmp,cstrTarger);//возможно, глюк

и так пока весь лист не разберём
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как передать все необязательные параметры (...) из одной функции в другую с (...)?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]