同一个进程之间共享变量

本文介绍了如何在同一个进程中通过#pragma data_seg实现共享变量,强调了共享变量必须初始化且仅支持基本类型。同时,详细说明了在使用时需要开启连接器的/SECTION:Shared,RWS选项以设置权限。此外,还探讨了不同类型之间的转换,如string到char[],char[]到Int,以及char[]到QString和string的赋值操作,并提醒读者在比较char[]数组大小时应使用strcmp()函数。" 107979944,8256185,贪心算法应用:插入排序Insersort解析,"['数据结构', '算法', '排序算法']
摘要由CSDN通过智能技术生成

编写程序打开一个exe,希望再打开一个exe时可以得到上一个exe共享的信息


#include<stdio.h>
#include<Windows.h>
// data_seg 之间的数据必须初始化否则会放在其他段中
#pragma data_seg("Shared")
 int apps = 0;
char sharedwnd[100] = "sds";//共享数据
char sharedwnd2[100] = "sds";//共享数据
#pragma data_seg()
 //告诉连接器开关 共享这个变量 RWS   ,R read W Write E execute S shared
#pragma comment(linker,"/SECTION:Shared,RWS")
 int main()
{
	string st1 = sharedwnd;
	st1 += "ss";
	cout << st1 << endl;
	string st2 = sharedwnd2;
	st2 += "ss";
	cout << st2 << endl;
	strncpy(sharedwnd, st1.c_str(), st1.length() + 1);
	strncpy(sharedwnd2, st2.c_str(), st2.length() + 1);
	if (strcmp(sharedwnd , "sdsss")==0) {
		cout << "aaaaa";
	}
	while (1);
    return 0;
}

#pragma data_seg 可以编辑共享变量,

需要注意中间的共享变量定义必须初始化,同时,只支持基本类型&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值