MFC DDE开发中令人迷惑的问题?

简介: 在用MFC(ddeml)开发DDE中,遇到一个令人迷惑的问题, ddeml提供的一些命令,在时钟函数里或按钮事件里运行正常,可是在线程里运行就出现如下错误

在用MFC(ddeml)开发DDE中,遇到一个令人迷惑的问题, ddeml提供的一些命令,在时钟函数里或按钮事件里运行正常,可是在线程里运行就出现如下错误:

"A parameter failed to be validated by the DDEML."

下面是两段代码:

//时钟
void YD::TimerProc(long hwnd,long nIDEvent,long uElapse,long lpTimerFunc)
{
      CString strData;
   static AAAA=0;   
      if (AAA.G_connection )
   {
  strData.Format("T%d", AAAA++);
        AAA.G_connection->Advise("aaa",(char *)(const char *)strData);
 }
}

//线程
UINT YD::YFDDE(LPVOID pParam)
{
    CString strData;
 static AAAA=0;

  while(1)
  {
 if (AAA.G_connection )
 {
  strData.Format("%d", AAAA++);
        AAA.G_connection->Advise("aaa",(char *)(const char *)strData);

  Sleep(3000);        
 } 
   
  }
  return 0;
}

线程和时钟的代码完全一样,可是运行结果不一样,难到ddlml有特殊的限制?这是MSDN说明的理由:

The application used a data handle initialized with a different item name handle than was required by the transaction.

 

 

 

The application used a data handle that was initialized with a different clipboard data format than was required by the transaction.

 

 

 

The application used a client-side conversation handle with a server-side function or vice versa.

 

 

 

The application used a freed data handle or string handle.

 

 

 

More than one instance of the application used the same object.

我也没有弄明白什么意思。

对了,有谁知道侯捷老师的《Windows DDE 动态资料交换》电子版图书在哪里下载?

相关文章
|
消息中间件 Ubuntu 编译器
Windows编程
Windows编程
52 0
|
算法 程序员 编译器
当程序遇上困难:程序调试的艺术(VS)
当程序遇上困难:程序调试的艺术(VS)
69 0
易语言基础代码
作者主页:https://www.couragesteak.com/
|
Rust Java 机器人
是 Rust 太难了,还是主流编程本来就这么折磨人?
本文作者在文章的前部分用了大量笔墨详细描述了自己尝试 Rust 受挫的经历,后半部分分析了 Rust 的问题及发展。自发布以来,这篇文章在 r/rust 上得到了 500 多个赞,在 HN 上有 700 多条评论。我们将其翻译出来,以飨读者,也希望大家可以理性讨论。
556 0
是 Rust 太难了,还是主流编程本来就这么折磨人?
|
SQL 人工智能 编译器
Prolog奇怪奇妙的思考方式
Prolog奇怪奇妙的思考方式
223 0
|
存储 缓存 安全
哦!这该死的 C 语言!(二)
C 语言是一门抽象的、面向过程的语言,C 语言广泛应用于底层开发,C 语言在计算机体系中占据着不可替代的作用,可以说 C 语言是编程的基础,也就是说,不管你学习任何语言,都应该把 C 语言放在首先要学的位置上。
哦!这该死的 C 语言!(二)
|
Java Unix 编译器
哦!这该死的 C 语言!(一)
C 语言是一门抽象的、面向过程的语言,C 语言广泛应用于底层开发,C 语言在计算机体系中占据着不可替代的作用,可以说 C 语言是编程的基础,也就是说,不管你学习任何语言,都应该把 C 语言放在首先要学的位置上。
哦!这该死的 C 语言!(一)
|
存储 编译器 程序员
哦!这该死的 C 语言!(三)
C 语言是一门抽象的、面向过程的语言,C 语言广泛应用于底层开发,C 语言在计算机体系中占据着不可替代的作用,可以说 C 语言是编程的基础,也就是说,不管你学习任何语言,都应该把 C 语言放在首先要学的位置上。
哦!这该死的 C 语言!(三)
|
JSON JavaScript 前端开发
为什么配置模式令人抓狂?尝试用编程语言来写吧
本文将试着解释为什么大多数配置格式用起来都不太舒服,作者建议大家尝试使用一门真正的编程语言(例如,像 Python 这样的通用编程语言)来编写配置,通常这是一种可行的选择,且使用过程更感愉悦。
|
图形学
Unity 思考问题的办法
Unity 思考问题的办法 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心...
976 0