其他应用程序(delphi)通过sendmessage方法发送的字符串
在vc6应用程序中应该用什么转化?CString不行啊该如何转化??

解决方案 »

  1.   

    不行啊VC6的另一个WIN32 APP 向这个接收消息的 WIN32 APP 发送都不行    COPYDATASTRUCT MyCDS;
    CString aa = "DSS-0086&192.168.1.136&123&16";
    int bb = 1;
    MyCDS.dwData = bb;            
    MyCDS.cbData = sizeof(aa);  
    MyCDS.lpData = &aa;       HWND hwDispatch = FindWindow("Test",NULL);
        if( hwDispatch != NULL )
    SendMessage(hwDispatch,
       WM_COPYDATA,
       (WPARAM)(HWND) hWnd,
       (LPARAM) (LPVOID) &MyCDS );
    接受::
    PCOPYDATASTRUCT pInfo;
    pInfo = (PCOPYDATASTRUCT) lParam;
    int ifunc = (int)(pInfo->dwData); LPTSTR strparams = (LPTSTR)(BSTR*)(pInfo->lpData);//** 不行 **/
    应该怎么去呢????
      

  2.   

    MyCDS.lpData = aa.GetBuffer(0);
      

  3.   

    你的COPYDATASTRUCT是在当前进程分配的地址,每个进程的虚拟地址都是独立的,直接引用当然不行喽!这样:
    COPYDATASTRUCT *p = 
    (COPYDATASTRUCT*)
    VirtualAlloc(
    NULL, dwResSize, MEM_RESERVE | MEM_COMMIT,PAGE_READWRITE 
    );SendMessage之后记得 VirtualFree( p, dwResSize, MEM_RELEASE );-------------------------------------------------------
    MyCSDN - CSDN离线数据浏览工具。(恒金软件出品)  
    可下载论坛文件、文档文章和全文搜索论坛数据以供离线浏览。支持签名回复。
    下载地址:http://nj.onlinedown.net/soft/6591.htm
      

  4.   

    to  zx_sanjin((恒金软件)-不结贴我跟你急!) : 可是我想通过
             MyCDS.dwData = bb;            
    MyCDS.cbData = sizeof(aa);  
    MyCDS.lpData = &aa;  
    方式 来传递参数阿你上面的方法我怎么传递参数呢?还望详细说明一下!
      

  5.   

    这不是一样嘛,只不过一个是指针,一个是实例:p->dwData = bb;
    p->cbData = sizeof(aa);
    p->lpData = (void*)&aa;-------------------------------------------------------
    MyCSDN - CSDN离线数据浏览工具。(恒金软件出品)  
    可下载论坛文件、文档文章和全文搜索论坛数据以供离线浏览。支持签名回复。
    下载地址:http://nj.onlinedown.net/soft/6591.htm
      

  6.   

    zx_sanjin((恒金软件)-不结贴我跟你急!) 说的很对 每个进程的虚地址是独立的 也都是相对的 你传给另一个进程一个地址 那这个进程就通过这个地址在自己的虚拟空间中寻找 当然找不到了。
    建议不要用VirtualAlloc 这个函数可能会很慢
    用系统的剪切板 应该能实现你的要求
    具体怎么用剪切板可以查查 很容易找到的
      

  7.   

    to zx_sanjin((恒金软件)-不结贴我跟你急!)  p->dwData = bb;
    p->cbData = sizeof(aa);
    p->lpData = (void*)&aa;这样时没有问题 SendMessage(hwDispatch,
       WM_COPYDATA,
       (WPARAM)(HWND) hWnd,
       (LPARAM) (LPVOID) p);这样有问题!!!
      

  8.   

    有什么问题?SendMessage(hwDispatch, WM_COPYDATA, (WPARAM)hWnd, (LPARAM)p);-------------------------------------------------------
    MyCSDN - CSDN离线数据浏览工具。(恒金软件出品)  
    可下载论坛文件、文档文章和全文搜索论坛数据以供离线浏览。支持签名回复。
    下载地址:http://nj.onlinedown.net/soft/6591.htm