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

来源:互联网 发布:js new 数组 编辑:程序博客网 时间:2024/06/16 08:33

需求是这样,一个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,但是功能上是可以实现的,以后找到更好的方法在更新

2 0
原创粉丝点击