如何打包项目及怎么使用相对路径

0

想打包一个项目,里面图片音乐都为绝对路径,该如何打包使得他人电脑上可以运行?

我想法是更改为相对路径,但没成功,应该是我不会使用相对路径,在这里顺便讨教相对路径的用法。附代码。

#include <stdio.h>
#include <graphics.h>
#include <string>
#include <cmath>
#include <conio.h>
#pragma comment(lib,"Winmm.lib")
#pragma comment( lib, "MSIMG32.LIB")
#define WIDTH 550
#define HEIGHT 700
void transparentimage(IMAGE* dstimg, int x, int y, IMAGE* srcimg)    // 半透明贴图函数
{
	//		dstimg: 目标 IMAGE 对象指针。NULL 表示默认窗体
	//		x, y:	目标贴图位置
	//		srcimg: 源 IMAGE 对象指针。NULL 表示默认窗体
	HDC dstDC = GetImageHDC(dstimg);
	HDC srcDC = GetImageHDC(srcimg);
	int w = srcimg->getwidth();
	int h = srcimg->getheight();

	// 结构体的第三个成员表示额外的透明度,0 表示全透明,255 表示不透明。
	BLENDFUNCTION bf = { AC_SRC_OVER, 0, 255, AC_SRC_ALPHA };
	// 使用 Windows GDI 函数实现半透明位图
	AlphaBlend(dstDC, x, y, w / 2, h / 2, srcDC, 0, 0, w, h, bf);
}
IMAGE img_bk, img_plane, img_blowup, img_bullet,img_ufo;  //定义图片
int main()
{
	while (1)
	{
		mciSendString(L"open‪ ./background.mp3 alias bkmusic", NULL, 0, NULL); //背景音乐
		mciSendString(L"play bkmusic repeat", NULL, 0, NULL);
		initgraph(WIDTH, HEIGHT);   //画布
		loadimage(&img_bk, _T("D:\\123\\Pictures\\坚持一百秒素材\\background1.png"));    // 导入背景图片
		loadimage(&img_plane, _T("D:\\123\\Pictures\\坚持一百秒素材\\plane.png"));       // 导入飞机图片
		loadimage(&img_ufo, _T("./enermy.png"));        // 导入飞碟图片
		transparentimage(NULL,0,0, &img_bk);
		transparentimage(NULL, 10,10,&img_plane);
		transparentimage(NULL,300,10, &img_ufo);
		char c;
		c = _getch();
	}
	
	
	return 0;
}
ava
随缘

2020-10-27

0

项目里面的资源肯定要用相对路径。否则,别人电脑不一定有这个路径。

相对路径,就是针对你的“当前路径”的相对路径。所以,相对路径怎么写,取决于你的“当前路径”是哪。一般来说,当前路径,是 .exe 所在路径。如果是 vs 里面执行,那就是 vs 项目所在路径。

比如,当前路径是 "D:\123",那么 "D:\123\Pictures\bk.png" 的相对路径就是 "Pictures\bk.png"。

ava
慢羊羊

2020-10-27

明白了,thank you -  随缘  2020-10-27
技术讨论社区