В настоящее время я использую Code :: Blocks с компилятором GCC на XP. Вызов AVIFileInit () в следующем тестовом коде вызывает ошибку сегментации:
#include <windows.h>
#include <stdio.h>
#include <vfw.h>
int main() {
printf("%s", "AVI Init...\n\n");
AVIFileInit(); /// <-- Crashes here!!!
printf("%s", "AVI Exit...\n\n");
AVIFileExit();
printf("%s", "return...\n\n");
return 0;
}
Я не могу найти причину или решение для этой проблемы. Любая помощь приветствуется.
Что ж, я наконец-то решил эту проблему, поэтому для всех, кто сталкивался с подобной проблемой, я решил опубликовать свой ответ:
Опустите «.lib» из имени файла в настройках компоновщика. (В этом случае напишите «VFW32», а не «VFW32.LIB».)
Таким образом, он не будет жаловаться, что не может найти файл, поэтому вам не придется тратить много времени на его поиск в папке установки, прежде чем сдаться и, в конце концов, связаться с другой версией библиотеки, не приходят с этим компилятором и на самом деле не совместимы.
Других решений пока нет …