COPYDATASTRUCT, WM_COPYDATA - PullRequest
       42

COPYDATASTRUCT, WM_COPYDATA

0 голосов
/ 06 июня 2018

Я пытаюсь отправить данные между двумя программами, используя WM_COPYDATA, но у меня есть проблема в определении COPYDATASTRUCT;

Вот ошибка:

enter image description here

Вот код:

#include <iostream>
#include <Windows.h>
#include <string>
#include <stdio.h>
#include <tchar.h>
#include < stdlib.h >  
#include < vcclr.h >
#include <msclr\marshal.h>
#include "MyForm.h"


namespace TestGraphique {

using namespace System;
using namespace msclr::interop;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Xml;
using namespace std;
typedef struct tagCOPYDATASTRUCT {
    ULONG_PTR dwData;
    DWORD     cbData;
    PVOID     lpData;
} COPYDATASTRUCT;


/// <summary>
/// Description résumée de MyForm
/// </summary>
public ref class MyForm : public System::Windows::Forms::Form
{
public:


    typedef struct COPYDATASTRUCT cpd;
     cpd.dwData = 0; // there is the problem
     cpd.cbData = dataToSend.GetLength(); // there is the problem 
    LPTSTR pszMem = new TCHAR[10000];
    HWND hWnd;
    HWND hWnd1;
    HWND hWnd2;
    HWND hWnd3;
    String^ a = "";
    String^ b = "";
    String^ c = "";
    String^ d = "";
    String^ result="";
    String^ TABLE = "";


    MyForm(void)
    {
        InitializeComponent();

    }

1 Ответ

0 голосов
/ 06 июня 2018

Существует несколько проблем:

Вы определяете тип, а не создаете переменную.Измените строку typedef struct COPYDATASTRUCT cpd; на COPYDATASTRUCT cpd;.

Вы не можете выполнить код в определении класса.Вы должны переместить эти строки в функцию:

cpd.dwData = 0;
cpd.cbData = dataToSend.GetLength();

Вам не нужно определять COPYDATASTRUCT в вашей программе.Это определено в windows.h.Удалить это:

typedef struct tagCOPYDATASTRUCT {
    ULONG_PTR dwData;
    DWORD     cbData;
    PVOID     lpData;
} COPYDATASTRUCT;
...