assireme81
Messages postés2Date d'inscriptionjeudi 13 août 2009StatutMembreDernière intervention13 août 2009
-
13 août 2009 à 13:15
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
14 août 2009 à 09:43
salut tout le monde
c'est la premiere fois que j'utilise ce forum donc je ne sais pas comment ca marche vrement
voila mon probleme
je veux creer une dll en visual C++ express pour vba
voici le code de stdatfx.h
// stdafx.h : Fichier Include pour les fichiers Include système standard,
// ou les fichiers Include spécifiques aux projets qui sont utilisés fréquemment,
// et sont rarement modifiés
#pragma once
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // Exclure les en-têtes Windows rarement utilisés
#endif
// Modifiez les définitions suivantes si vous devez cibler une plate-forme avant celles spécifiées ci-dessous.
// Reportez-vous à MSDN pour obtenir les dernières informations sur les valeurs correspondantes pour les différentes plates-formes.
#ifndef WINVER // Autorise l'utilisation des fonctionnalités spécifiques à Windows 95 et Windows NT 4 ou version ultérieure.
#define WINVER 0x0400 // Attribuez la valeur appropriée à cet élément pour cibler Windows 98 et Windows 2000 ou version ultérieure.
#endif
#ifndef _WIN32_WINNT // Autorise l'utilisation des fonctionnalités spécifiques à Windows NT 4 ou version ultérieure.
#define _WIN32_WINNT 0x0400 // Attribuez la valeur appropriée à cet élément pour cibler Windows 2000 ou version ultérieure.
#endif
#ifndef _WIN32_WINDOWS // Autorise l'utilisation des fonctionnalités spécifiques à Windows 98 ou version ultérieure.
#define _WIN32_WINDOWS 0x0410 // Attribuez la valeur appropriée à cet élément pour cibler Windows Me ou version ultérieure.
#endif
#ifndef _WIN32_IE // Autorise l'utilisation des fonctionnalités spécifiques à IE 4.0 ou version ultérieure.
#define _WIN32_IE 0x0400 // Attribuez la valeur appropriée à cet élément pour cibler IE 5.0 ou version ultérieure.
#endif
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // certains constructeurs CString seront explicites
#include // Composants MFC principaux et standard
#include // Extensions MFC
#ifndef _AFX_NO_OLE_SUPPORT
#include // Classes OLE MFC
#include // Classes de boîte de dialogue OLE MFC
#include // Classes MFC Automation
#endif // _AFX_NO_OLE_SUPPORT
#ifndef _AFX_NO_DB_SUPPORT
#include // Classes de base de données ODBC MFC
#endif // _AFX_NO_DB_SUPPORT
#ifndef _AFX_NO_DAO_SUPPORT
#include // Classes de base de données DAO MFC
#endif // _AFX_NO_DAO_SUPPORT
#include // Prise en charge des MFC pour les contrôles communs Internet Explorer 4
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include // Prise en charge des MFC pour les contrôles communs Windows
#endif // _AFX_NO_AFXCMN_SUPPORT
mais a la compilation voici l'erreur afficher
stdafx.h(32) : fatal error C1083: Impossible d'ouvrir le fichier include : 'afxext.h' : No such file or directory
j'ai vu sur le forum que 'afxext.h' fait parti de la bib MFC qui n'est pas dans VC++ express mais ya t-il un moyen d'avoir cette bib MFC sous vc++ express?
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 13 août 2009 à 14:25
Salut,
Tu peux faire deux types de dlls pour VBA. Soit faire une dll COM (Long et complexe en C++), soit faire une dll classique exportant des fonctions en __stdcall (Un peu plus facile). Tu peux ensuite utiliser la dll classique avec "declare" dans ton VBA.
Dans tout les cas, tu n'es pas obligé d'utiliser les MFCs... Sauf si tu t'en sers !
Le "problème" du windows sdk c'est que c'est une usine à gaz... Et faut s'y connaitre un minimum pour installer ce qui nous intéresse. A ta place je tenterais le platform d'abord.
assireme81
Messages postés2Date d'inscriptionjeudi 13 août 2009StatutMembreDernière intervention13 août 2009 13 août 2009 à 21:33
salut effectivement est une véritable usine a gaz comme tu le dit, mais je souhaite tt de même comprendre dans quel cas utilisé les MFC, de plus je veux savoir exactement ce qu'elle peut me rapporter de plus dans ma dll
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 14 août 2009 à 09:43
[quote=assireme81]dans quel cas utilisé les MFC/quote
Bin perso, comme pas mal de membre de ce site, je ne m'en sers jamais.
C'est une sur-couche en C++ créée par Microsoft et sensé faciliter le développement d'applications Windows (Elle sert en fin de compte surtout pour les interfaces graphiques). Globalement, elle encapsule des appels à l'API Win32 dans des classes (Souvent préfixées par C : CString, CWindow...), et définie un paquet de macro "magiques".
Utiliser directement l'API Win32 donne plus de contrôle mais nécessite théoriquement d'écrire plus de code. Par contre le code est plus simple et moins "magique".
Par exemple en Win32, pour afficher une fenêtre on appel une fonction en lui passant un handle désignant la fenêtre :