可以传递字符串的,它的意思是传送的数据的内容不能是指针。
看一下COPYDATASTRUCT的结构就知道了,
cbData:字符串的长度
lpData :字符串的首地址
看一下COPYDATASTRUCT的结构就知道了,
cbData:字符串的长度
lpData :字符串的首地址
解决方案 »
- VC++如何获取桌面图标名?或通过桌面图标名获取桌面图标位置?
- 请问:C#调用C++写的dll,dll中有事件时发生以什么方式通知C#
- 能不能在按钮上即加图标,又有文字
- 我想把程序编译成一个Exe执行文件,而且想让当鼠标光标移动到这个文件图标上时就可以启动这个exe,请高手指点一下好吗?
- ###############声明感谢!羽战士 和全体的程序员###################
- 如何在CEditView中得到当前光标所在的行数和列数?
- 没入门,望多多指教!
- 如何得到当前系统的操作系统是什么?
- 求编程VC++ "学校职工人事管理系统"~~
- 一个规模较大的程序,用面象对象方法设计,其中有一个问题???
- 在SDK中如何向WEB服务器发送一个Request请求?
- char问题
typedef struct
{
CString a;
int b;
} MyMsg;
我是这么写的:
COPYDATASTRUCT cds;
MyMsg msg;
msg.a = "hello";
msg.b = 1;
cds.dwData = 0;
cds.cbData = sizeof(msg);
cds.lpData = &msg;
另一个程序的接收端是这么写的:
MyMsg msg;
if (pCopyDataStruct->cbData == sizeof(MsgCmd))
{
//Copies characters between buffers.
memcpy(&msg,pCopyDataStruct->lpData,sizeof(MyMsg));
CString a;
int b;
a = msg.a;
b = msg.b;
AfxMessageBox(a);
return TRUE;
}
运行时就出错了,请问该怎么改啊?
typedef struct
{
char a[50];
int b;
} MyMsg;发送端:
COPYDATASTRUCT cds;
MyMsg msg;
strcpy(msg.a, "hello");
msg.b = 1;
cds.dwData = 0;
cds.cbData = sizeof(msg);
cds.lpData = &msg;接收端:
MyMsg msg;
if (pCopyDataStruct->cbData == sizeof(MsgCmd))
{
//Copies characters between buffers.
memcpy(&msg, pCopyDataStruct->lpData, sizeof(MyMsg));
CString a;
int b;
a = msg.a;
b = msg.b;
AfxMessageBox(a);
return TRUE;
}
typedef struct
{
CString a;
int b;
} MyMsg;
改为
typedef struct
{
char a[1024];
int b;
} MyMsg;
即可.
另外一定要用SENDMESSAGE,不能用其他的消息发送函数