乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      使用 WM_COPYDATA 在進(jìn)程間共享數(shù)據(jù)

       tianht 2015-06-10
      轉(zhuǎn):http://www.cnblogs.com/nbsofer/archive/2012/09/11/2680980.html

      消息作用:
          在進(jìn)程間共享數(shù)據(jù)(內(nèi)部通過(guò)創(chuàng)建內(nèi)存映射文件)
      
      消息介紹:
      需要用到的數(shù)據(jù)結(jié)構(gòu)/類(lèi)型:
      typedef struct tagCOPYDATASTRUCT {
          ULONG_PTR dwData;
          DWORD cbData;
          PVOID lpData;
      } COPYDATASTRUCT, *PCOPYDATASTRUCT;
      
      結(jié)構(gòu)體參數(shù)說(shuō)明:
          dwData(ULONG)   保存一個(gè)數(shù)值, 可以用來(lái)作標(biāo)志等
          lpData(void*)   待發(fā)送的數(shù)據(jù)的起始地址(可以為NULL)
          cbData(DWORD)   待發(fā)送的數(shù)據(jù)的長(zhǎng)度
          
      消息的參數(shù):
          hWnd:   接收數(shù)據(jù)的窗口的句柄
          wParam: 傳送該數(shù)據(jù)的窗口句柄(NULL也無(wú)所謂)
          lParam: COPYDATASTRUCT類(lèi)型變量的地址
          
      使用示例:
          COPYDATASTRUCT cds;
          char msg[] = "女孩不哭";
          cds.dwData = 0;
          cds.lpData = msg;
          cds.cbData = strlen(msg)+1; //字符串請(qǐng)記得把'\0'加上, 不然就錯(cuò)了, 這里是ANSI字符串
          SendMessage(FindWindow("nbsg_class", NULL), WM_COPYDATA, 0, (LPARAM)&cds);
          
      接收端對(duì)該消息的一種可能處理:
          case WM_COPYDATA:
          {
              //這里的消息應(yīng)該是以 '\0' 結(jié)尾的字符串
              COPYDATASTRUCT* pCDS = (COPYDATASTRUCT*)lParam;
              MessageBox(hWnd, pCDS->lpData, "", MB_OK);
              return TRUE;
          }
          
      說(shuō)明:  
          發(fā)送的數(shù)據(jù)可以是任意的, 我上面只是為了用MessageBox做測(cè)試, 所以發(fā)送的是以'\0'的字符串.
          如果接收消息的應(yīng)用程序處理了該消息, 它應(yīng)該返回 TRUE , 否則返回 FALSE. lpData 指向的內(nèi)存應(yīng)該是一段"數(shù)據(jù)", 就是說(shuō)里面不應(yīng)該有指向該程序某數(shù)據(jù)的指針. 因?yàn)?SendMessage 在處理 WM_COPYDATA 時(shí), 只是把 lpData 指向的 cbData 個(gè)字節(jié)復(fù)制到共享內(nèi)存中. 當(dāng)前進(jìn)程私有的指針就算是被發(fā)送到接收程序, 其也是無(wú)法訪問(wèn)的. 當(dāng)該消息正當(dāng)發(fā)送時(shí), 該進(jìn)程的其它線程不能修改其中的數(shù)據(jù). 接收端應(yīng)用程序應(yīng)該把這段共享內(nèi)存作為只讀內(nèi)存來(lái)訪問(wèn). 請(qǐng)不要嘗試修改其中的內(nèi)容. lParam 指向的數(shù)據(jù)只有在該消息處理時(shí)有效, 消息返回后無(wú)效(共享內(nèi)存已被釋放). 且接收端也不能釋放該內(nèi)存. 如果要在消息返回后繼續(xù)取得數(shù)據(jù), 可以把它復(fù)制到當(dāng)前進(jìn)程的某個(gè)位置.
      復(fù)制代碼

      女孩不哭(QQ:191035066) @ 2012-09-11 23:25:31 @ http://www.cnblogs.com/nbsofer

      分類(lèi): Win32開(kāi)發(fā)

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多