ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|
Проблемы с компиляцией сорца под Vs6 |

01.09.2007, 20:31
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
Проблемы с компиляцией сорца под Vs6
Есть сорц.
Код:
#include <windows.h>
void MyWinMain(void)
{
MessageBox(NULL,"Hello, world",NULL,MB_OK);
ExitProcess(0);
}
В том же архиве, что и сорц (они не мои) лежит бинарник размером 2 кб. При попытке скомпилировать сорц пишет
Код:
Compiling...
tinyapp.cpp
Linking...
tinyapp.obj : error LNK2001: unresolved external symbol __chkesp
Debug/TinyApp.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
TinyApp.exe - 2 error(s), 0 warning(s)
Если заменить MyWinMain (не знаю, стоит ли это вообще делать) на WinMain выдает
Код:
Compiling...
tinyapp.cpp
C:\Tiny\TinyApp\tinyapp.cpp(4) : warning C4007: 'WinMain' : must be '__stdcall'
C:\Tiny\TinyApp\tinyapp.cpp(4) : error C2731: 'WinMain' : function cannot be overloaded
C:\Tiny\TinyApp\tinyapp.cpp(3) : see declaration of 'WinMain'
Error executing cl.exe.
TinyApp.exe - 1 error(s), 1 warning(s)
Я запутался. Вот сорц.
|
|
|

01.09.2007, 20:43
|
|
Участник форума
Регистрация: 07.01.2007
Сообщений: 103
Провел на форуме: 726068
Репутация:
122
|
|
unresolved external symbol __chkesp --- в асме такая ошибка обычно означает что неподключон файл с описанием....
Последний раз редактировалось !_filin_!; 01.09.2007 в 20:48..
|
|
|

01.09.2007, 20:45
|
|
Fail
Регистрация: 17.09.2005
Сообщений: 2,242
Провел на форуме: 9089375
Репутация:
4268
|
|
#include <windows.h>
int main(int argc, char* argv[])
{
MessageBox(NULL, "Alexsize forever!", "Nalivai!",MB_OK | MB_ICONQUESTION);
}
Вот он - пример что надо=)
P.S. Если хочешь, чтоб твой заработал - выкинь ExitProcess(0);
З.З.Ы. КЕЗ не ори на мну, лучше в асе ответь=)
__________________
...
Последний раз редактировалось Alexsize; 01.09.2007 в 20:57..
|
|
|

01.09.2007, 20:46
|
|
Участник форума
Регистрация: 11.07.2006
Сообщений: 125
Провел на форуме: 413927
Репутация:
71
|
|
в первом случае создается новая точка входа в программу вот почитать http://rsdn.ru/article/cpp/crt.xml
во втором не соответствуют параметры функции winmain, почитать можно там же
|
|
|

01.09.2007, 20:54
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
!_filin_!, #include <windows.h> - все подключено, windows.h лежит в инклудах.
Alexsize, та же ошибка(
da_ff, читаю...
Последний раз редактировалось Piflit; 01.09.2007 в 20:57..
|
|
|

01.09.2007, 20:55
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
unresolved external symbol __chkesp --- в асме такая ошибка обычно означает что неподключон файл с описанием....
вы не перестаете меня удивлять, кодеры античата.
Код:
tinyapp.obj : error LNK2001: unresolved external symbol __chkesp
Компилер при включенной опции разных чекингов (помоему /Gs) добавляет тебе абсолютно на*** не нужный (почти) код __chkesp, который проверяет стек после каждого вызова. А CRT у тебя отключена в проэкте, поэтому линкуется без нее и ясен *** ф-ии нет нигде. Вырубай либо проверку в настройках проэкта, либо добавь CRT. Делай первое конечно 
И поставь сразу main'у __stdcall. Например APIENTRY или WINAPI.
Вот он - пример что надо=)
это нихера не что надо. у него сделан минимальный бинарник, там отключены CRT, и т.п.
Последний раз редактировалось KEZ; 01.09.2007 в 20:59..
|
|
|

01.09.2007, 21:10
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
Сообщение от KEZ
А CRT у тебя отключена в проэкте, поэтому линкуется без нее и ясен *** ф-ии нет нигде. Вырубай либо проверку в настройках проэкта, либо добавь CRT. Делай первое конечно 
И поставь сразу main'у __stdcall. Например APIENTRY или WINAPI.
1) где отключить CRT? пробежал все настройки, не нашел. можно ли писать бОльшие проги (например, блокнот) с отключенным CRT?
2)
И поставь сразу main'у __stdcall. Например APIENTRY или WINAPI
void MyWinMain(void) __stdcall {} так? или
void WINAPI MyWinMain(void); ?
|
|
|

01.09.2007, 21:13
|
|
Fail
Регистрация: 17.09.2005
Сообщений: 2,242
Провел на форуме: 9089375
Репутация:
4268
|
|
альт + F7 - там все найдешь.
__________________
...
|
|
|

01.09.2007, 21:18
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
Сообщение от Alexsize
альт + F7 - там все найдешь.
Я это уже смотрел, но про CRT там ничего нет. Может он называется по-другому? Я в этом пока не разбираюсь(
|
|
|

01.09.2007, 21:26
|
|
Fail
Регистрация: 17.09.2005
Сообщений: 2,242
Провел на форуме: 9089375
Репутация:
4268
|
|
Грохни вообще все что в Linker окошке. Он все что надо там сам проставит. Пример то простой.
__________________
...
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|