44 / 8 / 0
Регистрация: 06.08.2011
Сообщений: 364
1

Подлкючение сетевого диска, где-то происходит наложение в памяти

26.10.2011, 10:38. Показов 699. Ответов 7
Метки нет (Все метки)

Здравствуйте, у меня такой вопрос, написал код небольшой а вот цикл неработает(++) нет увеличения на единицу просто меняеться с 0 на 1.
вот код.
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
29
30
31
32
33
 библитечный файл
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm3 : public TForm
{
__published:    // IDE-managed Components
    TButton *Button1;
    TEdit *Edit1;
    TEdit *Edit2;
    TLabel *Label1;
    TEdit *Edit3;
    TEdit *Edit4;
    TLabel *Label2;
    TEdit *Edit5;
    TEdit *Edit6;
    TEdit *Edit7;
    TEdit *Edit8;
    TMemo *Memo1;
    void __fastcall Button1Click(TObject *Sender);
private:    // User declarations
public:     // User declarations
    __fastcall TForm3(TComponent* Owner);
    NETRESOURCE nr;
    void connect(wchar_t * argv[],String ip);
    String s;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm3 *Form3;
//---------------------------------------------------------------------------
#endif
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
include <vcl.h>
#pragma hdrstop
 
#include "Unit3.h"
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <Winnetwk.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
 
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button1Click(TObject *Sender)
{
 
int i=0;
int w=0;
 
 String ip,disk,s="";
 wchar_t * argv[3];
 disk=InputBox("Имя диска",s,"F:");
 for (i = StrToInt(Edit3->Text); i < 255; i++)
 {
    for (w = StrToInt(Edit4->Text); w < 255; w++)// вообщем ошибка срятаталось здесь w=0 или 1 нет нормальнго увеличения W++
    {
           ip=Edit1->Text+"."+Edit2->Text+"."+IntToStr(i)+"."+IntToStr(w);
            argv[0]=disk.w_str();
            argv[1]=ip.w_str();
            argv[2]= NULL;
            argv[3]= NULL;
      connect(argv,ip); 
    }
 }
 
}
 
 // функция подключения диска
 void TForm3::connect(wchar_t * argv[],String ip)
 {
    DWORD dwRetVal;
 
    nr.dwType = RESOURCETYPE_ANY;
    nr.lpLocalName = argv[0];
    nr.lpRemoteName = argv[1];
    nr.lpProvider = NULL;
 
    dwRetVal = WNetAddConnection2(&nr,argv[2], argv[3],CONNECT_UPDATE_PROFILE);
    if ( (dwRetVal == NO_ERROR))
    {
        Memo1->Lines->Add(String("Поключение"));
        Memo1->Lines->Add(ip);
    }
    else
    {
        Memo1->Lines->Add(String("Нет Поключения"));
        Memo1->Lines->Add(ip);
    }
 }
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2011, 10:38
Ответы с готовыми решениями:

В чём разница между обычным подключением сетевого диска и подключением сетевого диска при помощи политик?
Вопрос начинающего. В чём разница между обычным подключением сетевого диска и подключением сетевого...

Происходит наложение кадров друг на друга
Всем привет. При создании movie clip drag&amp;drop происходит наложение кадров друг на друга, как это...

Кеширование сетевого диска
Необходима помощь в написании/поиске исходников программы кеширования сетевого диска. 1-ый год...

Создание сетевого диска на XP
Здравствуйте, подскажите как решить такую задачу: есть 10 пользовательских пк и одни «главный»....

7
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
26.10.2011, 18:55 2
С виду вроде всё норм. Для локализации ошибки советую пройтись трассировкой по всему коду.
Ну и подоптимизировать, например зачем напихивать в argv[] нули а потом раздербанивать его по структуре? Проще прямо в OnClick набрать структуру и передать её параметром в connect. Хотя и вынос в отдельную функцию тоже непонятен, connect еще где-то используется?
Как-то так имхо смотрибельней:
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
29
30
31
32
33
void __fastcall TForm3::Button1Click(TObject *Sender)
{
 
int i=0;
int w=0;
 
 String ip,disk,s="";
 wchar_t * argv[3];
 disk=InputBox("Имя диска",s,"F:");
 DWORD dwRetVal
 for (i = StrToInt(Edit3->Text); i < 255; i++)
 {
        for (w = StrToInt(Edit4->Text); w < 255; w++)// вообщем ошибка срятаталось здесь w=0 или 1 нет нормальнго увеличения W++
        {
                   ip=Edit1->Text+"."+Edit2->Text+"."+IntToStr(i)+"."+IntToStr(w);
                   nr.dwType = RESOURCETYPE_ANY;
                   nr.lpLocalName = disk.w_str();
                   nr.lpRemoteName = ip.w_str();
                   nr.lpProvider = NULL;
                   dwRetVal = WNetAddConnection2(&nr,NULL, NULL,CONNECT_UPDATE_PROFILE);
                   if ( (dwRetVal == NO_ERROR))
                   {
                    Memo1->Lines->Add(String("Поключение"));
                    Memo1->Lines->Add(ip);
                   }
                   else
                   {
                    Memo1->Lines->Add(String("Нет Поключения"));
                    Memo1->Lines->Add(ip);
                   }
        }
 }
}
В любом случае надо проходить пошагово отладчиком и смотреть что как.
0
LK
Заблокирован
26.10.2011, 19:17 3
что и где "меняеться с 0 на 1" ?
0
0 / 0 / 0
Регистрация: 26.10.2011
Сообщений: 5
26.10.2011, 19:19 4
Извените за флуд, но почему я не могу отправлять личные сообщения?
0
LK
Заблокирован
26.10.2011, 20:27 5
может, они у вас отключены, или у получателя
0
44 / 8 / 0
Регистрация: 06.08.2011
Сообщений: 364
26.10.2011, 22:29  [ТС] 6
Цитата Сообщение от alekseirudoi Посмотреть сообщение
for (w = StrToInt(Edit4->Text); w < 255; w++)
вот здесь менлос в переменой w я трайсеровщиком смотрел цикл циклися до бесконечности, этот код что показал mimicria я еще незапускал, извените но вы со своей старостью достанете кого угодно.

Добавлено через 11 минут
Щас ошибки нет, но подключения нет. я попробую вставить в строку lpRemoteName типа такого \\192.168.*.*\\с$
как Вы думаете получиться?

Добавлено через 49 минут
Пока нечего неполучаеться, я пошел но форум Администрирование Windows срашивать чем отличаться пароль сетевой и локальный для пользователя рабочей группы, т.к. у меня при вводе \\192.168.*.*\c$ просить сначало пароль пользователя по адресу, а затем еще пароль сетевой для моего пользователя.
0
LK
Заблокирован
26.10.2011, 22:47 7
Цитата Сообщение от alekseirudoi Посмотреть сообщение
со своей старостью достанете кого
обычно, пень как ни доставай, ему как бы пофиг, а здесь, гляди, что-то сообразил, да опять - не в тему
Цитата Сообщение от LK Посмотреть сообщение
может, они у вас отключены, или у получателя
относилось к
Цитата Сообщение от dewid Посмотреть сообщение
Извените за флуд, но почему я не могу отправлять личные сообщения?
0
44 / 8 / 0
Регистрация: 06.08.2011
Сообщений: 364
27.10.2011, 12:44  [ТС] 8
Цитата Сообщение от LK Посмотреть сообщение
обычно, пень как ни доставай, ему как бы пофиг, а здесь, гляди, что-то сообразил, да опять - не в тему
ну пень есть пнем а вот кот будет лесником который ходет по лесу.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2011, 12:44
Помогаю со студенческими работами здесь

SMART сетевого диска
Добрый вечер! Скажите пожалуйста можно как-то посмотреть смарт сетевого диска?

Подключение сетевого диска
Доброго времени суток! Вопрос, наверное, немного не по теме, но все же. Подскажите, как решить...

Подключение сетевого диска
На компьютере стоит внешний жёсткий диск, на нём есть расшаренная папка, как сделать так, чтобы...

Авторизация сетевого диска
У меня подключен сетевой диск, и при каждом включении компьютера надо сначала авторизировался на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru