Форум программистов, компьютерный форум CyberForum.ru

Краш программы - C++

Восстановить пароль Регистрация
 
den-x
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 16
12.03.2012, 11:39     Краш программы #1
Из за чего крашит мою программу
в 1 запросе я ввожу: C:\test..
во 2 запросе я ввожу: C:\test.txt
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <string>
#include <sstream>
#include <iostream>
#include <Windows.h>
#include <tchar.h>
using namespace std;
 
int main()
{
    setlocale( LC_ALL,"" );
    wstring put;
    char str[1024];
    char get[256];
    cout << "Контейнер:\n";
    cin>>get;
        sprintf(str,"\\\\?\\%s",get);
        long uLen = MultiByteToWideChar(CP_ACP, 0, str,   -1,  NULL, NULL);
        WCHAR * lpszW = new WCHAR[uLen];
        MultiByteToWideChar(CP_ACP, 0, str, uLen, lpszW, uLen);
    cout << "Конечный файл:\n";
    wcin>>put;
        LPCWSTR PutEnd = put.c_str();
        for(int i = 0; i < uLen; i++)
    {
        MoveFile((LPCWSTR)lpszW[i],PutEnd);
    }
        return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
12.03.2012, 14:41     Краш программы #2
Цитата Сообщение от den-x Посмотреть сообщение
for(int i = 0; i < uLen; i++) { MoveFile((LPCWSTR)lpszW[i],PutEnd); }
Что-то страшное происходит в этом коде.
den-x
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 16
12.03.2012, 16:40  [ТС]     Краш программы #3
Цитата Сообщение от gooseim Посмотреть сообщение
Что-то страшное происходит в этом коде.
Да, без неё не крашит.
Как её исправить ?!
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
12.03.2012, 16:46     Краш программы #4
Подозреваю, что вместо этого
C++
1
2
3
4
5
LPCWSTR PutEnd = put.c_str();
        for(int i = 0; i < uLen; i++)
        {
                MoveFile((LPCWSTR)lpszW[i],PutEnd);
        }
надо
C++
1
MoveFile(lpszW, PutEnd);
den-x
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 16
12.03.2012, 16:51  [ТС]     Краш программы #5
Цитата Сообщение от gooseim Посмотреть сообщение
Подозреваю, что вместо этого
C++
1
2
3
4
5
LPCWSTR PutEnd = put.c_str();
        for(int i = 0; i < uLen; i++)
        {
                MoveFile((LPCWSTR)lpszW[i],PutEnd);
        }
надо
C++
1
MoveFile(lpszW, PutEnd);
C++
1
LPCWSTR PutEnd = put.c_str();//это надо оставить
Всё работает.
Я просто 1 раз формат конвертирую, спасибо!
Yandex
Объявления
12.03.2012, 16:51     Краш программы
Ответ Создать тему
Опции темы

Текущее время: 04:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru