вывод, что-то не хватает :(
натравливаем MOC.EXE (Meta-Object Compiler) на файлы *.h (по логике нужно натравить на все файлы). Если результат есть (сформирован файл не нулевой длины), значит этот файл .h содержал МЕТА записи, которые нужно превратить в нормальный вменяемый C/C++:
all_moc.bat
--8<---
for /R "." %%i in (*.h) do (moc.exe "%%~nxi" -o "moc_%%~ni.cpp"
for /R "." %%j in (moc_%%~ni.cpp) do if exist %%~j if "%%~zj" equ "0" del "%%j"
)
exit
--8<---
Стало (для всех)
натравливаем MOC.EXE (Meta-Object Compiler) на файлы *.h (по логике нужно натравить на все файлы). Если результат есть (сформирован файл не нулевой длины), значит этот файл .h содержал МЕТА записи, которые нужно превратить в нормальный вменяемый C/C++:
all_moc.bat
--8<---
for /R "." %%i in (*.h) do (moc.exe "%%~nxi" -o "moc_%%~ni.cpp"
for /R "." %%j in (moc_%%~ni.cpp) do if exist %%~j if "%%~zj" equ "0" del "%%j"
)
exit
--8<---
после чего все полученные файлы moc_*.cpp вставляем в проект.
компилим, получаем ошибку
------ Build started: Project: securesocketclient4, Configuration: Debug Win32 ------
moc_sslclient.cpp
moc_certificateinfo.cpp
Generating Code...
main.obj : error LNK2019: unresolved external symbol "int __cdecl qInitResources_securesocketclient(void)" (?qInitResources_securesocketclient@@YAHXZ) referenced in function _main
D:\VisualC++Projects\securesocketclient4\Debug\securesocketclient4.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
внимание! теперь самая главная хитрость!!!
rcc.exe -name securesocketclient securesocketclient.qrc -o qrc_securesocketclient.cpp
без выделенной фразы файл qrc_securesocketclient.cpp будет сформирован, но проект не соберется
теперь вставляем qrc_securesocketclient.cpp в проект и компилим.
------ Build started: Project: securesocketclient4, Configuration: Debug Win32 ------
qrc_securesocketclient.cpp
securesocketclient4.vcxproj -> D:\VisualC++Projects\securesocketclient4\Debug\securesocketclient4.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
все собралось тип топ, но теперь выполнится ли файл?
Выполнился, но при этом держит черное консольное окно. Надо поправить.
Было:
Стало (аналогично нужно сделат для Release):
Было (для всех)
Компилим, получаем ошибку:
------ Build started: Project: securesocketclient4, Configuration: Release Win32 ------
MSVCRT.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16
D:\VisualC++Projects\securesocketclient4\Release\securesocketclient4.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Правим точку входа на mainCRTStartup согласно http://www.gamedev.net/topic/617335-compiling-a-qt-project-in-visual-studio/ (http://msdn.microsoft.com/en-us/library/f9t8842e.aspx)
Было (для всех)
Стало (для всех)
------ Build started: Project: securesocketclient4, Configuration: Release Win32 ------
Generating code
Finished generating code
securesocketclient4.vcxproj -> D:\VisualC++Projects\securesocketclient4\Release\securesocketclient4.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Все работает тип-топ %)))
Так вот в чем была моя ошибка!!!
При установки точки входа в main согласно http://2lx.ru/2009/08/error-lnk2019-unresolved-external-symbol-_winmain16-referenced-in-function-___tmaincrtstartup/ я и напрыгался :((((
я не дочитал до конца комментарии, в которых и была соль земли :(((
Что собственно и приводило к тому, что в argc было 32 вместо 1, argv указывал непонятно куда...
Entry point указывает на хитрую функцию, которая кроме всего прочего, получает аргументы из командной строки и формирует из них параметры main: argv и argc. envp тоже получает она. Если указать в качестве entry point функцию main, работать программа будет, но вот argv и argc будут, мягко говоря, недействительными.