Bonjour à tous,

Je dispose du code de l'exemple d'un SDK pour exploiter une caméra sous Windows 7 écrit en VC++.

Comment utiliser cet exemple pour le transférer en C++ Builder XE ?

Voici le code du projet sous "Microsoft Visual C++ 2010 Express"
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
/******************************************************************************
*                                                                             *
*   PROJECT : EOS Digital Software Development Kit EDSDK                      *
*      NAME : Av.cpp                                                          *
*                                                                             *
*   Description: This is the Sample code to show the usage of EDSDK.          *
*                                                                             *
*                                                                             *
*******************************************************************************
*                                                                             *
*   Written and developed by Camera Design Dept.53                            *
*   Copyright Canon Inc. 2006-2008 All Rights Reserved                        *
*                                                                             *
*******************************************************************************/
 
#include "stdafx.h"
#include "CameraControl.h"
#include "Av.h"
 
#define WM_USER_PROPERTY_CHANGED		WM_APP+1
#define WM_USER_PROPERTYDESC_CHANGED	WM_APP+2
// CAv
 
IMPLEMENT_DYNAMIC(CAv, CPropertyComboBox)
CAv::CAv()
{
	// set up action command
	setActionCommand("set_Av");
 
	// Map of value and display name
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x00,"00"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x08,"1"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x0B,"1.1"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x0C,"1.2"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x0D,"1.2"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x10,"1.4"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x13,"1.6"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x14,"1.8"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x15,"1.8"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x18,"2"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x1B,"2.2"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x1C,"2.5"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x1D,"2.5"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x20,"2.8"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x23,"3.2"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x24,"3.5"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x25,"3.5"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x28,"4"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x2B,"4.5"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x2C,"4.5"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x2D,"5.0"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x30,"5.6"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x33,"6.3"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x34,"6.7"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x35,"7.1"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x38,"8"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x3B,"9"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x3C,"9.5"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x3D,"10"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x40,"11"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x43,"13"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x44,"13"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x45,"14"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x48,"16"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x4B,"18"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x4C,"19"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x4D,"20"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x50,"22"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x53,"25"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x54,"27"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x55,"29"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x58,"32"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x5B,"36"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x5C,"38"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x5D,"40"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x60,"45"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x63,"51"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x64,"54"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x65,"57"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x68,"64"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x6B,"72"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x6C,"76"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x6D,"80"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0x70,"91"));
	_propertyTable.insert( std::pair<EdsUInt32, const char *>(0xffffffff,"unknown"));
}
 
CAv::~CAv()
{
}
 
 
BEGIN_MESSAGE_MAP(CAv, CPropertyComboBox)
	ON_MESSAGE(WM_USER_PROPERTY_CHANGED, OnPropertyChanged)
	ON_MESSAGE(WM_USER_PROPERTYDESC_CHANGED, OnPropertyDescChanged)
	ON_CONTROL_REFLECT(CBN_SELCHANGE, OnSelChange)
END_MESSAGE_MAP()
 
 
 
// CAv message handler
void CAv::OnSelChange() 
{
	DWORD_PTR data = GetItemData(GetCurSel());
 
	fireEvent(&data);
}
 
void CAv::update(Observable* from, CameraEvent *e)
{
 
	std::string event = e->getEvent();
 
	//Update property
	if(event == "PropertyChanged")
	{
		EdsInt32 propertyID = *static_cast<EdsInt32 *>(e->getArg());
 
		if(propertyID == kEdsPropID_Av)
		{
			//The update processing can be executed from another thread. 
			::PostMessage(this->m_hWnd, WM_USER_PROPERTY_CHANGED, NULL, NULL);
		}
	}
Le n'y comprend rien !!!

J'aimerai au moins le compiler avec "Microsoft Visual C++ 2010 Express " ne serait-ce que pour voir la Form qui s'affiche... Et par la suite le traduire en C++ Builder

Nota : je n'ai besoin que de rechercher les appels aux fonctions des DLL fournies par le constructeur de la caméra. Je dispose en outre d'un exemple que j'ai écrit en 2005 sous Delphi qui utlise ces mêmes DLL mais sous Windows XP pour une ancienne version de la caméra, donc je connais le principe d'utilisation du SDK. Cela devrait pouvoir m'aider.

Merci à tous.

Quelqu'un peut-il m'aider ?