VS2005使用easyx图形库graphics.h链接过程出错 error LNK2001_ 无法解析的外部符号 __iob

⌚Time: 2022-12-12 00:56:23

👨‍💻Author: Jack Ge

在vs2005的stdio.h头文件中


#ifndef _STDSTREAM_DEFINED

#define stdin  (&__iob_func()[0])

#define stdout (&__iob_func()[1])

#define stderr (&__iob_func()[2])

#define _STDSTREAM_DEFINED

#endif 

有定义了__iob_func,因此自己写一个__iob,调用__iob_func


#include "stdio.h"

extern "C" {

    FILE _iob[3] = {__iob_func()[0], __iob_func()[1], __iob_func()[2]};

}

另外,对于高版本的VisualStudio,使用__acrt_iob_func替代了__iob_func,easyx图形库编译时又会报错无法解析的外部符号 __iob_func,需要添加


#include "stdio.h"

extern "C" {

FILE * __cdecl __iob_func(unsigned i) {

    return __acrt_iob_func(i);

}

}