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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2013, 09:49   #1
null_1
Новичок
Джуниор
 
Регистрация: 03.09.2013
Сообщений: 2
По умолчанию CreateProcessWithLogonW в Unicode & multi-byte

Хочу воспользоваться функцией CreateProcessWithLogonW в Unicode:
Код:
int _tmain(int argc, _TCHAR* argv[])
{

if(argc==1)
 {
		PROCESS_INFORMATION pi = {0};
		STARTUPINFO         si = {0};
		si.cb = sizeof(STARTUPINFO);

		CreateProcessWithLogonW((L"user"),((L"local")),(L"passw"),LOGON_WITH_PROFILE,NULL,(L"ex.exe 111"),NULL,NULL,lpszW,&si,&pi);
		WaitForSingleObject(
		prinfo.hProcess,
		INFINITE
		);
		return 1;
 }
 else
 {
		cout<<adm<<"\n";
		system("pause");
}

	return 0;
}
Всё работает. Но я хочу чтобы эта функция у меня работала и в multi-byte. Преписал её вот так:

Код:
int _tmain(int argc, _TCHAR* argv[])
{

if(argc==1)
 {
		PROCESS_INFORMATION *pi;
		STARTUPINFOW *si;
		si = new STARTUPINFOW;
		si->cb=sizeof(STARTUPINFOW);
		pi = new PROCESS_INFORMATION;

		CreateProcessWithLogonW((L"user"),((L"local")),(L"passw"),LOGON_WITH_PROFILE,NULL,(L"ex.exe 111"),NULL,NULL,lpszW,si,pi);
		WaitForSingleObject(
		prinfo->hProcess,
		INFINITE
		);
		return 1;
 }
 else
 {
		cout<<adm<<"\n";
		system("pause");
}

	return 0;
}
На XP-всё работает, а на WIN7 нет.
Подскажите как это исправить или где я ошибаюсь...и почему так происходит?=(



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 03.09.2013 в 10:45.
null_1 вне форума Ответить с цитированием
Старый 03.09.2013, 11:52   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

K Unicode/Multibyte ваши изменения отношения не имеют.
Вы начали выделять памят динамически и то, что раньше было инициализировано в ноль теперь содержит "мусор". Меня больше удивляет то, что продолжает работать на ХР.

А зачем скобки вокруг текстов?
waleri вне форума Ответить с цитированием
Старый 03.09.2013, 12:13   #3
null_1
Новичок
Джуниор
 
Регистрация: 03.09.2013
Сообщений: 2
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
K Unicode/Multibyte ваши изменения отношения не имеют.
Вы начали выделять памят динамически и то, что раньше было инициализировано в ноль теперь содержит "мусор". Меня больше удивляет то, что продолжает работать на ХР.

А зачем скобки вокруг текстов?
я уже тоже понял, что когда объявил как указатель...забыл обнуление.
скобки лишними не бывают=)
null_1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ANSI & UNICODE AD0 Общие вопросы Delphi 0 15.06.2011 09:21
CreateProcessWithLogonW в windows 7 cyberovskij Общие вопросы Delphi 1 22.06.2010 15:06
TIdMessage & Unicode PUH Помощь студентам 0 23.11.2009 09:43
запуск сервиса и CreateProcessWithLogonW sysyman Win Api 8 22.01.2009 23:01