![]() |
Проблемы с компиляцией сорца под Vs6
Есть сорц.
Код:
#include <windows.h>Код:
Compiling...Код:
Compiling... |
unresolved external symbol __chkesp --- в асме такая ошибка обычно означает что неподключон файл с описанием....
|
Цитата:
P.S. Если хочешь, чтоб твой заработал - выкинь ExitProcess(0); З.З.Ы. КЕЗ не ори на мну, лучше в асе ответь=) |
в первом случае создается новая точка входа в программу вот почитать http://rsdn.ru/article/cpp/crt.xml
во втором не соответствуют параметры функции winmain, почитать можно там же |
!_filin_!, #include <windows.h> - все подключено, windows.h лежит в инклудах.
Alexsize, та же ошибка( da_ff, читаю... |
Цитата:
Код:
tinyapp.obj : error LNK2001: unresolved external symbol __chkespИ поставь сразу main'у __stdcall. Например APIENTRY или WINAPI. Цитата:
|
Цитата:
2) Цитата:
void WINAPI MyWinMain(void); ? |
альт + F7 - там все найдешь.
|
Цитата:
|
Грохни вообще все что в Linker окошке. Он все что надо там сам проставит. Пример то простой.
|
Цитата:
Цитата:
|
=(
_http://slil.ru/24804237 |
Цитата:
|
Цитата:
|
1) int __stdcall WinMain(HINSTANCE, HINSTANCE, LPSTR, int) - вин проект или в настройках SUBSYSTEM:WINDOWS, надеюсь разберешься.
2) #pragma comment(linker, "/ENTRY:myEntry") , где myEntry твоя точка входа. Пишу в неадекватном состоянии, если где ошибься - поправьте. http://forum.vingrad.ru/topic-38864.html |
прочел http://rsdn.ru/article/cpp/crt.xml .
Цитата:
Ni0x, 1 пробовал, рез тот же. по поводу второго... подумал и решил вручную точку входа не ставить, просто не знаю, куда. Дайте сорц оконного хелло ворлда на winapi. Я попробую его у себя скомпилить. блин... целый вечер за этим сижу... бред какой-то... |
Инструкция:
Win32 Application -> An empty project -> File View -> Source Files -> Add Files To Folders -> создаешь файл с расширением сpp -> далее пишешь в нем: Код:
#include <windows.h> |
Цитата:
при мах сжатии upx 9.5. но все равно не то=\ |
Piflit Я думаю это настройки линкера...
в частности попробуй вот так! объеденить все данные в одну секцию у меня раза в два снижает размер :) #pragma comment(linker,"/FILEALIGN:512 /MERGE:.rdata=.text /MERGE:.data=.text /SECTION:.text,EWR /IGNORE:4078") |
_http://uinc.ru/articles/28/ там есть исходник
а вообще не вижу смысла........на стадии изучения основ останавливаться на этом |
> Я это уже смотрел, но про CRT там ничего нет. Может он называется по-другому? Я в этом пока не разбираюсь(
#pragma comment(linker,"/entry:MyWinMain") #pragma comment(linker,"/nodefaultlib") void __stdcall MyWinMain( void ) { ... } |
Уррря! Я постиг секрет хеккерской линковки!! Всем огромное спасибо! Особенно Kezу))
ЗЫ прикольно, в конце упикс пожал получившийся 16кб файл в 8 раз и получились заветные 2 кб!!! ))))))0 теперь можно спокойно идти спать....... |
Ну если у тебя получился файл размером 16кб, значит ты не постиг тайну линковщика =)
Читай информацию по ссылке, которую я дал тебе в одном из своих сообщений. |
http://uinc.ru/articles/28/
В билдере можно что-то подобное сделать? Пробовал как в статье: Цитата:
|
lexer666, дебаг билд?
|
В Bcb6 нет же режимов дебаг или релиз. В Vs05 при обоих режимах ошибки.
В Bcb6 можно собрать маленькое приложение, как в статье? |
lexer666
Код:
#include <windows.h> |
Цитата:
Цитата:
|
lexer666, для bcb нужно отключать опции непосредственно в проекте, через pragma comment ты этого не сделаешь.
|
Код:
#pragma comment(linker, "/MERGE:.rdata=.text") На самом деле юзать эти прагмы надо с умом, а /ignore:4078 можно вообще выкинуть. Видимо поэтому её и нет в линкерах следующих версий студий. Если убираете CRT - вырубайте все проверки компилятора, туда ссылающиеся, делайте свой operator new и delete, и т.п. Причем в след. студиях Release сборка почему-то (никто не знает) позволяет создать бинарник меньше (из-за уменьшения выравнивания файла (не путать с секциями), такая опция есть только у линкеров VS6, дальше нету). Вообщем, может я не тщательно смотрел, но в 7 и 8 студиях ставить релиз необходимо - иначе хер соберется самый маленький бинарник. Странно что они так сделали, по логике Debug и Release - "пресеты" настроек и не должны содержать в себе чего-то, что нельзя поменять через эти настройки. Ещё насчет оптимизация - как-то уж очень хуево она сделана в студиях 7 и 8. А может и 6 - незнаю. Ставишь minimize size и компиллер тебе женской логикой выбрасывает из кода всякое, по его мнению "говно", которое не используется или возвращает константу и т.п. |
http://wasm.ru/forum/viewtopic.php?pid=188444#p188444
тут я уже описывал как что и зачем |
Грейт не спорь, не отнимай у меня плюсики репутации. все по понятиям. =\
|
| Время: 00:15 |