powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Консоль в DLL
14 сообщений из 14, страница 1 из 1
Консоль в DLL
    #38153607
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При вызове функции из DLL, по замыслу архитектора, должна открываться консоль.
В ЕХЕ-проекте все работает, в ДЛЛ тоже самое не хочет. Даже не компилируется, пишет ошибки.
Экзэмпл из ЕХЕ- проекта
Код: plaintext
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.
#include <windows.h> 
#include <stdio.h>
#include <io.h>
#include <fcntl.h>

BOOL CreateConsole(void)
{
  FreeConsole(); //на всякий случай
  if ( AllocConsole() )
  {
    int hCrt = _open_osfhandle((long)
    GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
    *stdout = *(::_fdopen(hCrt, "w"));
    ::setvbuf(stdout, NULL, _IONBF, 0);
    *stderr = *(::_fdopen(hCrt, "w"));
    ::setvbuf(stderr, NULL, _IONBF, 0);
    return TRUE;
  }
  return FALSE;
}

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
  CreateConsole();
  printf("WinMain with Console test\n");

  MSG msg;
  while (GetMessage(&msg, NULL, 0, 0))
  {
    TranslateMessage(&msg);
    DispatchMessage(&msg); 
  }
  return TRUE;
}


Ээто все работает, но в ЕХЕ. VS 2010


"Есть многое на свете, друг Горацио, что и не сразу в голову придет."
М. Твен "Приключения Геккельбери Финна"
...
Рейтинг: 0 / 0
Консоль в DLL
    #38153612
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да,естественно, в ДЛЛ main заменена на др. функцию.
...
Рейтинг: 0 / 0
Консоль в DLL
    #38153613
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAДаже не компилируется, пишет ошибки.приведите здесь их текст, пожалуйста
...
Рейтинг: 0 / 0
Консоль в DLL
    #38153631
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель, для начала. Уже только добавление windows.h вызывает ошибки


Ошибка 1 error C2872: IServiceProvider: неоднозначный символ c:\program files\microsoft sdks\windows\v7.0a\include\servprov.h 96
Ошибка 2 error C3699: *: это косвенное обращение невозможно использовать для типа "IServiceProvider" c:\program files\microsoft sdks\windows\v7.0a\include\servprov.h 96
Ошибка 3 error C2371: IServiceProvider: переопределение; различные базовые типы c:\program files\microsoft sdks\windows\v7.0a\include\servprov.h 103
Ошибка 4 error C2872: IServiceProvider: неоднозначный символ c:\program files\microsoft sdks\windows\v7.0a\include\servprov.h 120
Ошибка 5 error C2872: IServiceProvider: неоднозначный символ c:\program files\microsoft sdks\windows\v7.0a\include\servprov.h 241
Ошибка 6 error C2872: IServiceProvider: неоднозначный символ c:\program files\microsoft sdks\windows\v7.0a\include\servprov.h 251
Ошибка 7 error C2872: IServiceProvider: неоднозначный символ C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\urlmon.h 6459
Ошибка 8 error C2872: IServiceProvider: неоднозначный символ C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\urlmon.h 6461

В тоже время, без windows.h AllocConsole() не распознается. Явно этих хидер файлов в проектк нет.
...
Рейтинг: 0 / 0
Консоль в DLL
    #38154147
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, так.
VS 2010 Exp. С++
Создаем пустой проект библиотеки классов. Компилируем его. Ошибок нет. Внешних зависимостей нет вообще. Ничего вообще не пишем.
Пишем #include <Windows.h> или
Код: plaintext
1.
2.
3.
extern "C" {
#include <Windows.h>
}

Появляется масса ошибок.
И это в пустом проекте.
Ранее функционал из первого топика прекрасно уживался со всем, в т.ч. с проектами WinForm.
...
Рейтинг: 0 / 0
Консоль в DLL
    #38154158
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAСоздаем пустой проект библиотеки классов.

Что такое "библиотека классов"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Консоль в DLL
    #38154179
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЧто такое "библиотека классов"?Та-же Dll содержащая классы доступные извне. Так это называется в VS2010 по русски при создании проекта. И компилируется как DLL.
Я не в курсе, чем при создании это отличатся (в смысле настроек проекта) от динамической или стат билиотек, но наверно отличаются, если MS выделила это в отдельный проект.
...
Рейтинг: 0 / 0
Консоль в DLL
    #38154292
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBADimitry SibiryakovЧто такое "библиотека классов"?Та-же Dll содержащая классы доступные извне.Значит это "не та-же" DLL.
Скорее всего ты путаешь windows DLL, с .net dll.
...
Рейтинг: 0 / 0
Консоль в DLL
    #38154746
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot White OwlЗначит это "не та-же" DLL.
Скорее всего ты путаешь windows DLL, с .net dll.[/quot]Да, спасибо, это так.
Заодно испортил С++, в поисках ошибки "отредактировав" один из системных h-файлов. Переустановил.
А вот классы перестали определяться. Пишем в DLL - Class abc - ошибка. Наверное, либо пенье , либо пляски. :)
Раньше с MS VS C++ дела не имел, как-то больше с Borland 5, но давно. Листаю Хортона.
...
Рейтинг: 0 / 0
Консоль в DLL
    #38154772
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAРаньше с MS VS C++ дела не имел, как-то больше с Borland 5

Чисто для протокола: у Borland ключевые слова С++ тоже регистрочувствительны.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Консоль в DLL
    #38154836
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЧисто для протокола: у Borland ключевые слова С++ тоже регистрочувствительны.Да, конечно, у всех С/С++ это одинаково. Borland был ближе к ANSI чем MS. Тот же Хортон пишет, что МS многое отличается от ANSI.
...
Рейтинг: 0 / 0
Консоль в DLL
    #38154853
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAДа, конечно, у всех С/С++ это одинаково.
Тогда чего ж ты удивляешься, что "Class abc" не компилируется?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Консоль в DLL
    #38154870
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, там нормально все, в топике м.б. и ошибка вышла. У меня не получилось класс добавить в DLL. В обычной-то проге все ОК. В проекте под библиотеку классов тоже без проблем. А здесь заколдобило - класс добавляется, нет консоли, есть консоль -классы исчезли. Ни фига не понимаю. :(
Понятно, что я в этой МS VS С++ что-то не понимаю.
...
Рейтинг: 0 / 0
Консоль в DLL
    #38154938
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAВ общем, так.
VS 2010 Exp. С++
Создаем пустой проект библиотеки классов. Компилируем его. Ошибок нет. Внешних зависимостей нет вообще. Ничего вообще не пишем.
Пишем #include <Windows.h> или
Код: plaintext
1.
2.
3.
extern "C" {
#include <Windows.h>
}

Появляется масса ошибок.
И это в пустом проекте.
Ранее функционал из первого топика прекрасно уживался со всем, в т.ч. с проектами WinForm.

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


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