Здравствуйте, Kaukko, Вы писали:
K>сделал всё так же, как написал SuhanovSergey.
K>создал файлик *_h.h, вместе с ним создался *_i.c,
K>для того, что бы он компилился пришлось добавлять в командную строку /Tp *_i.c, но возникает ошибка
K>C2857: '#include' statement specified with the /Ycstdafx.h command-line option was not found in the source file "*_i.c"
K>что за?
Надо откючить precompiled headers для этого файла.
K>если эти файлы удалить из проекта и просто подключить библиотеки atlbase и atlcom, то выдается ошибка
K>An unhandled exception of type 'System.TypeInitializationException' occurred in Unknown Module.
K>Additional information: The type initializer for '<Module>' threw an exception.
K>как с этим бороться?
Это известная проблема CLR/ATL приложений. Причина: не инициализируется C-runtime потому что в проекте нет WinMain. Лечение: очищается опция Linker->Advanced->Entry Point, после этого вручную пишется функция WinMain
int __stdcall WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
return main(nullptr);
}
Имеет смысл переименовать и использовать мой тестовый проект.