Bonjour,

J'ai des connaissances assez empiriques en C/C++ et de même en .NET. Je dispose de code C (ci-dessous) et je voudrais savoir dans quelle mesure le faire fonctionner avec du C#. Une conversion pure et simple et possible ou... ?

Pour info ceci est la definition de la structure de donnée du "pilote" d'une dalle tactile. A l'heure actuelle il s'agit d'une application console C++, mais je suppose qu'il serait plus "intéressant" et plus facile pour moi de ne programmer qu'en C#.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# driver.h #

#include "CSharedStruct.h"
#include <stdio.h>
#include <vector>

#define MTOUCH_IPC_GUID "Global\\RNDPLUS_MTSharedData_10A0_A10AF_3124_0120"
#define MTOUCH_EVENT_GUID "Global\\RNDPLUS_MTOUCHPOINT_IPC_INTERFACE_0401"
#define MTOUCH_TOUCH_UP
#define MTOUCH_TOUCH_DOWN
#define MTOUCH_TOUCH_MOVE
#define INACTIVE_COORDINATE 0x0000
#define ACTIVE_COORDINATE 0x0001
#define IMAGE_COORDINATE 0x0002

typedef struct _MPoint
{
	WORD wStatus;
	WORD wIndex;
	WORD wXlength;
	WORD wYlength;
       .....
} MPointElement;

#define MAX_MPOINTELEMENT_COUNT 100

typedef struct _Shared
{
	DWORD dwState;
	DWORD dwNumber;
	DWORD dwNumberX;
	DWORD dwNumberY;
    MPointElement mPpoints [MAX_MPOINTELEMENT_COUNT][MAX_MPOINTELEMENT_COUNT];
} SharedData;

DWORD ThreadProc(void);

# driver.c #

DWORD ThreadProc(void)
{
	HANDLE hTouch = INVALID_HANDLE_VALUE;	
	while(hTouch == INVALID_HANDLE_VALUE)
	{
		hTouch = OpenEvent(EVENT_ALL_ACCESS, false, MTOUCH_EVENT_GUID);
        }
....
}