COPYDATASTRUCT, WM_COPYDATA

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

Вот ошибка:

введите описание изображения здесь

Вот код:

#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();

}

-3

Решение

Есть несколько вопросов:

Вы определяете тип, а не создаете переменную. Изменить строку 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;
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]