информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Сетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Крупный сбой Azure и других сервисов... 
 Серьезный сбой AWS положил множество... 
 Фишинговая атака на Python-разработчиков 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
Я это в курсе. 18.02.04 00:48  Число просмотров: 1195
Автор: deb Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Я это в курсе.
Я говорил про опцию /SUBSYSTEM для vc++ линкера.
И про /ENTRY.
Просто я не в курсе gcc(правильнее наверно ld) поддреживает это или нет.
<beginners>
unicode + ansi + winapi + gcc3.2 17.02.04 12:55  
Автор: deb Статус: Незарегистрированный пользователь
<"чистая" ссылка>
#define UNICODE
#define _UNICODE

#include <windows.h>
#include <tchar.h>
#include <stdio.h>

int _tmain(int argc, TCHAR *argv[])
{
if (argc == 2)
{
if (!lstrcmp (argv [1], TEXT("--install")))
{
_tprintf (TEXT("Hello"));
}
}
}

Не думаю что валить надо на компилятор и все же.
Ругается: [Linker error] undefined reference to `WinMain@16'
Я не научился бороться с этим правильно 17.02.04 14:35  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Не думаю что валить надо на компилятор и все же.
> Ругается: [Linker error] undefined reference to
> `WinMain@16'
Это линкер. И надо ему явно подставить точку входа. Там их две: одна юникодная, другая ансишная - поищи сам. Так вот я просто вручную в проекте забивал новую точку входа (юникодную)
Этот же кусок кода VC++ нормально компилит. Без ошибок. 17.02.04 22:53  
Автор: deb Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Этот же кусок кода VC++ нормально компилит. Без ошибок.
Думаю что-то в опциях к этому gcc. Вообще Dev-Cpp пользуюсь.
Люблю gcc && не люблю VC++. Однако.....
Так и в gcc он компилится нормально 18.02.04 00:08  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Этот же кусок кода VC++ нормально компилит. Без ошибок.
> Думаю что-то в опциях к этому gcc. Вообще Dev-Cpp
> пользуюсь.
> Люблю gcc && не люблю VC++. Однако.....
Материться начинает линкер. Ладно, не хошь сам искать - я уже поискал

Бывает 4 различных точки входа:
mainCRTStartup(void)
wmainCRTStartup(void)
WinMainCRTStartup(void)
wWinMainCRTStartup(void)

---

Для main, wmain, WinMain и wWinMain соответственно. То бишь они готовят нужные данные (в частности первые две распарсивают командную строку на argc/argv) и вызывают соответсвующую функцию.

Линкер ничего не знает о том, что ты компилил проект со включенным юникодом и более того он не знает, что на самом деле компилировалось консольное, а не Win32 приложение. Не знаю как (скорее всего по умолчанию) у тебя в качестве точки входа используется WinMainCRTStartup, которая в библиотеке есть. Но она вызывает WinMain и этим ставит неразрешимую связь, на которую и ругается линкер.

Как автоматизировать это дело я не знаю. Но лечится заменой точки входа на нужную. В твоем случае это wmainCRTStartup
Я это в курсе. 18.02.04 00:48  
Автор: deb Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Я это в курсе.
Я говорил про опцию /SUBSYSTEM для vc++ линкера.
И про /ENTRY.
Просто я не в курсе gcc(правильнее наверно ld) поддреживает это или нет.
entry точно поддерживает 18.02.04 01:52  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Я это в курсе.
> Я говорил про опцию /SUBSYSTEM для vc++ линкера.
> И про /ENTRY.
> Просто я не в курсе gcc(правильнее наверно ld) поддреживает
> это или нет.
Не помню ключа - читай man. А подсистемы должен поддерживать если вообще работает с PE файлами.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach