fatal error LNK1104: 无法打开文件“cpu_bitmap.h”


编译cuda的例子时,会遇到


fatal error LNK1104: 无法打开文件“cpu_bitmap.h”


由于没有成功调用cpu_bitmap这个文件,才会报这个错误,可以手动在工程中添加一下这个文件


文件代码为


cpu_bitmap.h


#ifndef __CPU_BITMAP_H__ 
#define __CPU_BITMAP_H__ 

#include "gl_helper.h" 
/*创建了一个叫做 CPUBitmap的结构体 */

/*对struct 和 class 有困惑的人可以看:http://blog.csdn.net/tigernana/article/details/7606773 */ 
struct CPUBitmap

{ 
	unsigned char    *pixels;       /*像素点的总个数*/ 
	int     x, y;                              /*图像的长宽*/ 
	void    *dataBlock;                /*  */ 
	/*对void指针不太熟悉的人,可以参看 http://pcedu.pconline.com.cn/empolder/gj/c/0509/702366_all.html  */ 
	void (*bitmapExit)(void*);     /*这是一个函数 */ 

	/*受C语言影响,对struct有疑惑的,请参看: http://leeing.org/2010/01/31/struct-vs-class-in-cpp/  */ 
	CPUBitmap( int width, int height, void *d = NULL ) 
	{ 
		pixels = new unsigned char[width * height * 4];   /*计算总的像素点数,并分配新的空间*/ 
		x = width;                                                                      /*图像的宽*/ 
		y = height;                                                                     /*图像的高*/ 
		dataBlock = d;                                                                /* */                                            
	} 

	/*析构函数*/ 
	~CPUBitmap() 
	{

		/*删除像素点*/ 
		delete [] pixels;        
	} 
	/*取得所有像素点*/        
	unsigned char* get_ptr( void ) const   { return pixels; }

	/*取得图片总大小*/ 
	long image_size( void ) const { return x * y * 4; } 



	void display_and_exit( void(*e)(void*) = NULL )

	{ 
		CPUBitmap**   bitmap = get_bitmap_ptr(); 
		*bitmap = this; 
		bitmapExit = e;


		// a bug in the Windows GLUT implementation prevents us from 
		// passing zero arguments to glutInit() 
		int c=1; 
		char* dummy = "";

		/*glutInit,对 GLUT (OpenGl 里面的一个工具包,包含很多函数)进行初始化,这个函数必须在其它的 GLUT使用之前调用一次。其格式比较死板,一般照抄这句glutInit(&argc, argv)就可以了*/ 
		glutInit( &c, &dummy );         
		/*设置显示方式,其中 GLUT_RGBA 表示使用 RGBA 颜色,与之对应的还有GLUT_INDEX(表示使用索引颜色) ;GLUT_SINGLE 表示使用单缓冲,。与之对应的还有 GLUT_DOUBLE(使用双缓冲)。*/     
		glutInitDisplayMode( GLUT_SINGLE | GLUT_RGBA ); 
		/*这个也简单,设置窗口的大小*/ 
		glutInitWindowSize( x, y );

		/*根据前面设置的信息创建窗口。参数将被作为窗口的标题。注意:窗口被创建后,并不立即显示到屏幕上。需要调用 glutMainLoop 才能看到窗口。*/ 
		glutCreateWindow( "bitmap" );

		/* http://tieba.baidu.com/p/296729172  当有普通按键被按,调用Key函数*/    
		glutKeyboardFunc(Key);

		/* 设置一个函数,当需要进行画图时,这个函数就会被调用。*/ 
		glutDisplayFunc(Draw);

		/*显示窗口*/ 
		glutMainLoop();

	} 

	// static method used for glut callbacks 
	static CPUBitmap** get_bitmap_ptr( void )

	{ 
		static CPUBitmap   *gBitmap; 
		return &gBitmap; 
	} 

	// static method used for glut callbacks 
	static void Key(unsigned char key, int x, int y)

	{

		/* 如果按键按的是Esc按键,则退出程序。*/ 

		switch (key)

		{ 
		case 27: 
			CPUBitmap*   bitmap = *(get_bitmap_ptr()); 
			if (bitmap->dataBlock != NULL && bitmap->bitmapExit != NULL) 
				bitmap->bitmapExit( bitmap->dataBlock ); 
			exit(0); 
		} 
	} 
	// static method used for glut callbacks

	/* 画图 */ 
	static void Draw( void )

	{ 
		CPUBitmap*   bitmap = *(get_bitmap_ptr());

		/*设置背景颜色*/ 
		glClearColor( 0.0, 0.0, 0.0, 1.0 );

		/*清除。GL_COLOR_BUFFER_BIT 表示清除颜色*/ 
		glClear( GL_COLOR_BUFFER_BIT );

		/* http://blog.csdn.net/ghost129/article/details/4409565 绘制像素点 */ 
		glDrawPixels( bitmap->x, bitmap->y, GL_RGBA, GL_UNSIGNED_BYTE, bitmap->pixels );

		/*保证前面的 OpenGL 命令立即执行(而不是让它们在缓冲区中等待)。其作用跟 fflush(stdout)类似。*/ 
		glFlush(); 
	} 
}; 

#endif  // __CPU_BITMAP_H__ 


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值