Erreur sous Visual C++ 2008

wallie0703 Messages postés 59 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 29 juillet 2008 - 20 juin 2008 à 11:44
wallie0703 Messages postés 59 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 29 juillet 2008 - 23 juin 2008 à 10:36
Bonjour a tous!!

Je travaille sous Visual C++ que je ne connais pas encore très bien...j'ai une erreur que je ne comprend pouvez me l'expliquer svp!!

1>cl : Ligne de commande warning D9035 : l'option 'Wp64' est désapprouvée et sera supprimée dans une version ultérieure

Merci d'avance.

Bien à vous...

18 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
20 juin 2008 à 11:47
Hello,
A priori, la détection de la portabilité 64 bits est obsolète. Dans les options de ton projet, tu peux donc la supprimer

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
0
wallie0703 Messages postés 59 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 29 juillet 2008
20 juin 2008 à 11:52
Ok merci sympa!!Voici une erreur de résolu!!

Bien à vous...
0
wallie0703 Messages postés 59 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 29 juillet 2008
20 juin 2008 à 12:10
REBonjour a tous,

Voila j'ai ce code :

#define _CRT_SECURE_NO_DEPRECATE
#include "ModuleInterface.h"
#include <vector>
#include <string>

typedef std::pair<std::string, std::string> DeviceInfo;
std::vector<DeviceInfo> g_availableDevices;

MODULE_API long GetModuleVersion();

long GetModuleVersion()
{
return MODULE_INTERFACE_VERSION;
}

MODULE_API long GetDeviceInterfaceVersion()
{
return DEVICE_INTERFACE_VERSION;
}

void AddAvailableDeviceName(const char* name, const char* descr)
{
std::vector<DeviceInfo>::const_iterator it;
for (it=g_availableDevices.begin(); it!=g_availableDevices.end(); ++it)
if (it->first.compare(name) == 0)
return; // already there

// add to the list
g_availableDevices.push_back(std::make_pair(name, descr));
}

MODULE_API unsigned GetNumberOfDevices()
{
return (unsigned) g_availableDevices.size();
}

MODULE_API bool GetDeviceName(unsigned deviceIndex, char* name, unsigned bufLen)
{
if (deviceIndex >= g_availableDevices.size())
return false;

if (g_availableDevices[deviceIndex].first.length() >= bufLen)
return false; // buffer too small, can't truncate the name

strcpy(name, g_availableDevices[deviceIndex].first.c_str());
return true;
}

MODULE_API bool GetDeviceDescription(unsigned deviceIndex, char* description, unsigned bufLen)
{
if (deviceIndex >= g_availableDevices.size())
return false;

strncpy(description, g_availableDevices[deviceIndex].second.c_str(), bufLen-1);
return true;
}

Quand je fais "Générer la solution" il me met ces erreurs :

1>ModuleInterface.cpp
1>c:\program files\stage\micro-manager1.2\mmdevicekit-win-26_00\mmdevice\moduleinterface.cpp(36) : warning C4273: 'GetModuleVersion' : liaison DLL incohérente
1> c:\program files\stage\micro-manager1.2\mmdevicekit-win-26_00\mmdevice\moduleinterface.h(65) : voir la définition précédente de 'GetModuleVersion'
1>c:\program files\stage\micro-manager1.2\mmdevicekit-win-26_00\mmdevice\moduleinterface.cpp(41) : error C2491: 'GetDeviceInterfaceVersion' : définition de fonction dllimport non autorisée
1>c:\program files\stage\micro-manager1.2\mmdevicekit-win-26_00\mmdevice\moduleinterface.cpp(57) : error C2491: 'GetNumberOfDevices' : définition de fonction dllimport non autorisée
1>c:\program files\stage\micro-manager1.2\mmdevicekit-win-26_00\mmdevice\moduleinterface.cpp(62) : error C2491: 'GetDeviceName' : définition de fonction dllimport non autorisée
1>c:\program files\stage\micro-manager1.2\mmdevicekit-win-26_00\mmdevice\moduleinterface.cpp(74) : error C2491: 'GetDeviceDescription' : définition de fonction dllimport non autorisée

Pouvez m'aider et me dire ce qui ne va pas ???
Merci d'avance!!




Bien à vous...
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
20 juin 2008 à 13:38
Tu as du mal configurer ta dll. Il faut que MODULE_API soit déclaré comme dllexport et non dllimport

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wallie0703 Messages postés 59 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 29 juillet 2008
20 juin 2008 à 14:46
Merci!!
Mais comment tu fais?

Bien à vous...
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
20 juin 2008 à 14:59
Dans ton fichier.h

#ifdef USE_DLL
#define MODULE_API __declspec(dllexport)
#else
#define MODULE_API __declspec(dllimport)
#endif

Dans les propriétés de ton projet, rajouter USE_DLL dans la définition du préprocesseur (je n'ai pas Visual 2008 sous la main, désolé)

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
0
wallie0703 Messages postés 59 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 29 juillet 2008
20 juin 2008 à 15:08
Merci beaucoup!!
Désolée mais maintenant il me met ça :

1>------ Début de la génération : Projet : Adaptateur, Configuration : Debug Win32 ------

1>Compilation en cours...

1>ModuleInterface.cpp

1>PI_GCS.cpp

1>Génération de code en cours...

1>Compilation du manifeste en ressources en cours...

1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0

1>Copyright (C) Microsoft Corporation. All rights reserved.

1>Édition des liens en cours...

1> Création de la bibliothèque Debug\Adaptateur.lib et de l'objet Debug\Adaptateur.exp

1>MSVCRTD.lib(crtexe.obj) : error LNK2019: symbole externe non résolu _main référencé dans la fonction ___tmainCRTStartup

1>Debug\Adaptateur.exe : fatal error LNK1120: 1 externes non résolus

1>Le journal de génération a été enregistré à l'emplacement "file://c:\Program Files\Stage\Micro-Manager1.2\MMDeviceKit-win-26_00\MMDevice\Debug\BuildLog.htm"

1>Adaptateur - 2 erreur(s), 0 avertissement(s)

======== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========

Bien à vous...
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
20 juin 2008 à 15:26
ok...j'm'a gourré!
En fait, tu n'as pas de projet DLL, tu as un main avec des fichiers.h et .cpp. A quoi te sert alors le MODULE_API? Tu remarqueras que les erreurs de ton 3e message renvoient aux fonctions qui l'utilisent.Tu peux le supprimer? Et oublies mon dernier message du coup (sorry...)

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
0
wallie0703 Messages postés 59 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 29 juillet 2008
20 juin 2008 à 15:35
En fait j'ai modifié l'un des fichiers...j'ai fait un projet a partir de fichiers existants donc je ne pense pas que je puisse le supprimer...il est utile..pour etre honnete je sais pas a quoi il sert...??

Bien à vous...
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
20 juin 2008 à 16:27
Perso, je pense que tu peux le supprimer car ce type de constante est valable pour des projets de type dll

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
0
wallie0703 Messages postés 59 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 29 juillet 2008
20 juin 2008 à 16:38
Oui mais voici le .h je peux pas l'enlever...

#ifndef

_MODULE_INTERFACE_H_
#define

_MODULE_INTERFACE_H_
/*#ifdef USE_DLL

#define MODULE_API __declspec(dllexport)

#else

#define MODULE_API __declspec(dllimport)

#endif

*/

#ifdef

WIN32

#ifdef MODULE_EXPORTS
#define MODULE_API __declspec(dllexport)

#else

#define MODULE_API
__declspec(
dllimport)

#endif#else

#define MODULE_API

#endif

 

#define

MM_MODULE_ERR_OK 1000
#define

MM_MODULE_ERR_WRONG_INDEX 1001
#define

MM_MODULE_ERR_BUFFER_TOO_SMALL 1002
///////////////////////////////////////////////////////////////////////////////

// header version

// NOTE: If any of the exported module API calls changes, the interface version

// must be incremented

#define

MODULE_INTERFACE_VERSION 4
const

char*
const LIB_NAME_PREFIX =
"mmgr_dal_";
#include

"MMDevice.h"///////////////////////////////////////////////////////////////////////////////

// Exported module interface

///////////////////////////////////////////////////////////////////////////////

extern

"C" {MODULE_API MM::Device* CreateDevice(

const
char* name);MODULE_API

void DeleteDevice(MM::Device* pDevice);MODULE_API

long GetModuleVersion();MODULE_API

long GetDeviceInterfaceVersion();MODULE_API

unsigned GetNumberOfDevices();MODULE_API

bool GetDeviceName(
unsigned deviceIndex,
char* name,
unsigned bufferLength);MODULE_API

bool GetDeviceDescription(
unsigned deviceIndex,
char* name,
unsigned bufferLength);

/*** Intializes the list of available devices and perhaps other global initialization tasks.

* The method may be called any number of times during the uManager session.

*/

MODULE_API

void InitializeModuleData();}

// corresponding function pointers

typedef

void (*fnDeleteDevice)(MM::Device*);
typedef

MM::Device* (*fnCreateDevice)(
const
char*);
typedef

long (*fnGetModuleVersion)();
typedef

long (*fnGetDeviceInterfaceVersion) ();
typedef

unsigned (*fnGetNumberOfDevices)();
typedef

bool (*fnGetDeviceName)(
unsigned,
char*,
unsigned);
typedef

bool (*fnGetDeviceDescription)(
unsigned,
char*,
unsigned);
typedef

void (*fnInitializeModuleData)();
// functions fore internal use

void

AddAvailableDeviceName(
const
char* deviceName,
const
char* description =
"Description N/A"); 

#endif

//_MODULE_INTERFACE_H_

Bien à vous...
0
wallie0703 Messages postés 59 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 29 juillet 2008
20 juin 2008 à 16:42
Peut etre qu'il fo que je fasse un projet DLL?? Mais comment faire??

Bien à vous...
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
20 juin 2008 à 17:00
Je ne comprends plus, là...
Typiquement, le fichier que tu me montre sert d'interface à une dll...mais tu n'utilise pas de dll...
Qu'as tu fais exactement? Tu as copier/coller ce fichier pour le mettre à ton projet? Tu peux donc le modifier?
Sinon, dans les options de préprocesseur (ou dans ton prog), tu définis la macro MODULE_EXPORTS

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
0
wallie0703 Messages postés 59 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 29 juillet 2008
23 juin 2008 à 09:29
En fait j'ai téléchargé un DDK (qui contient des .h et .cpp) que j'ai modifié et je voudaris savoir coomment on fait pour le recompiler??

Bien à vous...
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
23 juin 2008 à 09:58
Salut,
Eh ben...tu t'attaques à du gros, toi
Généralement, on évite de modifier un DDK, on l'utilise tel quel et on se branche dessus.
Si tu veux, néanmoins, le recompiler, il faut que tu regarde la doc du DDK

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
0
wallie0703 Messages postés 59 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 29 juillet 2008
23 juin 2008 à 10:12
Ben en fait j'ai pas le choix c'est mon sujet de stage... Alors j'ai regardé la doc et j'ai fait comme ils disent et tout mais ca ne marche toujours pas il me met toujours les meme erreurs.... Je comprend pas pourquoi!! Y a un exemple et j'ai fait la meme chose lui il peut etre générer mais pas le mien...c'est bizarre quand meme...!!!
Bien à vous...
0
wallie0703 Messages postés 59 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 29 juillet 2008
23 juin 2008 à 10:35
Bien à vous...
0
wallie0703 Messages postés 59 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 29 juillet 2008
23 juin 2008 à 10:36
En fait je n'ai pas modifier la DDK j'ai rajouté quelques fichiers...
Bien à vous...
0
Rejoignez-nous