当我在我的程序中使用 opengl 时,我在使用“glew”时遇到了一个问题:未解析的外部符号 _ imp _glewInit(当使用glew 1.10.0 时),因为我用版本“ glew 1.6.0 ”替换了glew32.lib ,这个问题就解决了。但是,当我在 .cpp 文件中编译附加的简单代码时,链接步骤失败并显示错误:外部符号 _ imp _glewInit@0。然后我使用VS2008的dumpin.exe检查glew 1.6.0和glew 1.10.0中的glew32.lib,结果glew 1.6.0有一个名为_glewInit的符号,而glew 1.10.0有_glewInit@0。
所以我的问题是为什么这两个glew32.libs有不同的符号名称?如果我想使用glew 1.10.0 中的新功能并且出现错误“未解析的外部符号_ imp _glewInit”,那么最好的解决方法是什么?
#include "glew.h"
#include <GL/freeglut.h>
int main(int argc, char **argv){
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
glutCreateWindow("123");
GLenum err = glewInit();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
PS:我所有的测试都是在Win7上,编译器是VS2008_SP1。
我使用fputc(在C/C++中)将一些数据输出到一个文件中,文件大小对我来说很重要.但重新启动文件的大小似乎不正确,一个简单的代码示例:
FILE *fp = fopen( "123.txt", "w" );
for( int i=0; i<64; i++ )
fputc( i, fp );
fclose( fp );
Run Code Online (Sandbox Code Playgroud)
在排除此代码后,文件的大小为65B,而不是64B,但如果使用fputc(1,fp),则文件大小为64B.有什么伎俩吗?或者我可以做些什么来控制输出文件的大小?