使用命名对象,进行跨进程边界共享内核对象. 系统无法保证对象名称的唯一性,可以创建一个GUID,并将这个GUID的字符串
形式作为名称使用.
1
//
--生成GUID的代码
2
//
--相关程序/微软guidgen.exe
3
4
#include
"
stdafx.h
"
5
#include
<
objbase.h
>
6
#include
<
stdio.h
>
7
8
//
--生成GUID
9
const
char
*
newGUID()
10
{
11
static
char
buf[
64
]
=
{
0
}
;
12
GUID guid;
13
if
(S_OK
==
::CoCreateGuid(
&
guid))
14
{
15
_snprintf(buf,
sizeof
(buf)
16
,
"
{%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}
"
17
, guid.Data1
18
, guid.Data2
19
, guid.Data3
20
, guid.Data4[
0
], guid.Data4[
1
]
21
, guid.Data4[
2
], guid.Data4[
3
], guid.Data4[
4
], guid.Data4[
5
]
22
, guid.Data4[
6
], guid.Data4[
7
]
23
);
24
}
25
return
(
const
char
*
)buf;
26
}
27
28
int
main(
int
argc,
char
*
argv[])
29
{
30
//
--COM
31
CoInitialize(NULL);
32
33
printf(newGUID());
34
printf(
"
/r/n
"
);
35
36
//
--COM
37
CoUninitialize();
38
39
return
0
;
40
}
41
42