同じプロセス間共有変数

ときに共有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缶編集共有変数、

共有変数の真ん中の定義は、同じ時に初期化されなければならないことを注意は、唯一のタイプは、変換、共有変数の再割り当ての必要性をサポートしていませんQStringの、文字列のために、基本的なタイプをサポートしています。

/ SECTION::共有、RWS、RWS権限私はそれがスイッチに接続されている必要があり共有したいと思います。

文字列回転文字[]配列。

strncpy(sharedwnd, st1.c_str(), st1.length() + 1);

intへのchar []配列

int acess=atoi(shared_wnd);

char [] QStringの、文字列を回し、それはオーバーロードされている、直接割り当てることができます

QString s=shared_wnd;
string ss=shared_wnd;

さらに文字[]配列型==直接のstrcmp(によって必要とされる大きさを比較していません)。

彼は192元記事に公開 ウォン称賛27 ビューに10万+を

おすすめ

転載: blog.csdn.net/lovely_girl1126/article/details/103901764