关于extern "c" 的问题请教
我使用http://www.codeguru.com/Cpp/G-M/multimedia/article.php/c1571/中的代码,转换avi文件,但是在编译通过的时候,连接时出错:
AVIFile.obj : error LNK2001: unresolved external symbol _AVIFileInit@0
AVIFile.obj : error LNK2001: unresolved external symbol _VideoForWindowsVersion@0
AVIFile.obj : error LNK2001: unresolved external symbol _AVIFileExit@0
AVIFile.obj : error LNK2001: unresolved external symbol _AVIFileRelease@4
AVIFile.obj : error LNK2001: unresolved external symbol _AVIStreamRelease@4
AVIFile.obj : error LNK2001: unresolved external symbol _AVIStreamWrite@32
AVIFile.obj : error LNK2001: unresolved external symbol _AVIStreamSetFormat@16
AVIFile.obj : error LNK2001: unresolved external symbol _AVIMakeCompressedStream@16
AVIFile.obj : error LNK2001: unresolved external symbol _AVISaveOptions@20
AVIFile.obj : error LNK2001: unresolved external symbol _AVIFileCreateStreamA@12
AVIFile.obj : error LNK2001: unresolved external symbol _AVIFileOpenA@16
我查了下帮助,这个是“The term “linkage specification” refers to the protocol for linking functions (or procedures) written in different languages.”的原因,然后就在头文件中添加了
extern "c" STDAPI_(void) AVIFileInit();
结果还是有错误,:
Compiling...
AVIFile.cpp
f:\vc编程\flood\avifile.h(34) : error C2059: syntax error : 'string'
f:\vc编程\flood\avifile.h(34) : error C2238: unexpected token(s) preceding ';'
12个错误变成2个了,有进步,但是接下来我却不知道怎么解决了,各位大虾指点下~~