您的位置:首页 > 编程语言 > C语言/C++

C++ VS2010 一个解决方案下多个项目间的数据调用

2016-12-26 23:02 453 查看
需求是这样,一个vs的解决方案,下面有两个项目 a和b,需要把a项目中一个变量的值传递到b项目中,尝试了全局变量的方法,在a项目的头文件声明全局变量,在a项目的源文件初始化这个变量。在b项目中引用那个头文件,把全局变量的值全给b项目中的一个变量。这样代码不会报错,但是传过来的值是空的。全局变量的没办法跨项目。

所以我用了这种方式,在工程文件夹下放进去一个txt文件,执行a工程是,把想要的数据写入txt文件中:

char ad[128] = { 0 };
for (int i = 11; i <14; i++)
{
sprintf_s(ad, "D:\\image\\%d.jpg",i);
//把图片名称路径写入txt文本
FILE *writefp;
int j = 0;
if ((writefp = fopen("bianliang.txt", "r+")) == NULL)  //读取1.txt的文件
{
printf("读取文件失败 \n ");
exit(1);
}
std::cout << "读取" << "成功" << std::endl;
printf(" 现在写入文件 \n "); //从这里开始
while (ad[j++] != '\0')
{
fputc(ad[j], writefp);
}
fclose(writefp);//关闭


到b工程下,从txt文本中读到想要的数据,让进string,用string类中的函数截取出想要的内容,我是把数据当做图片的名称,保存图片

FILE *readfp;
int ret, i = 0;
char s[100][81];
if ((readfp = fopen("bianliang.txt", "r")) == NULL)
printf("The file fscanf.out was not opened\n");
else//写入s数组
{
while ((ret = fscanf(readfp, "%s", s[i]) != EOF))
{
i++;
}
}
string name(s[0]);//数组中的数据放入字符串
fclose(readfp);//关闭
//截取数据
size_t iPos = name.find(".");
string ss = name.substr(8, iPos-8);
//截取的数据写入adname数组
char adname[128] = { 0 };
sprintf_s(adname, "D:\\save\\%s.jpg", ss.c_str());
imwrite(adname, img_window);


这种方式很麻烦,自己感觉都很low,但是功能上是可以实现的,以后找到更好的方法在更新
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐