Accueil > Forum > > > > apeler une fonction C
apeler une fonction C
jeudi 10 mai 2007 à 20:37:14 |
apeler une fonction C

PoLoCh
|
Bonjour a tous je me lance dans VS2005, et jai un ptit probleme voila, jai un code en C deja fai, et jai creer mon interface graphique avec C++ sur vs2005, jai lu que je pouvai inclure mes fonction C, pour cela je dois juste inclure comme ceci ma header file, extern "C" { // Fournir la déclaration de f(int i, char c, float x) #include "main.h" } , malheuresement ça ne marche pas, quand jessaye d'apeller ma fonction teste(), jai une erreur, Error 1 error LNK2028: unresolved token (0A00000A) "extern "C" int __clrcall test(void)" (?test@@$$J0YMHXZ) referenced in function "private: void __clrcall teste::Form1::abrirToolStripMenuItem_Click(class System::Object ^,class System::EventArgs ^)" (?abrirToolStripMenuItem_Click@Form1@teste@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) teste.obj si quelqu'un a une idee comment resourdre ce probleme jle remercie. Victor Oliveira
|
|
jeudi 10 mai 2007 à 20:50:29 |
Re : apeler une fonction C

DeAtHCrAsH
|
Ou est déclaré ta fonction ? Comment se présente ton programme ?
Shell
|
|
jeudi 10 mai 2007 à 20:51:32 |
Re : apeler une fonction C

emmatopiak
|
Salut,
Il faudrait coller main.h et le corps de la fonction test aussi parce que tu nous donne juste #include "main.h" ca va pas aider beaucoup Une autruche ne se cuit pas aux petits lardons.
|
|
jeudi 10 mai 2007 à 21:17:20 |
Re : apeler une fonction C

PoLoCh
|
ok, voila mon main.h, c'est juste un teste,
#ifdef __cplusplus extern "C" { #endif
int test();
#ifdef __cplusplus } #endif
dites moi je ajouter les fichier .c et .h au project vs2005, dois-je compiler d'abord mes fonctions C??
merci
Victor Oliveira
|
|
jeudi 10 mai 2007 à 21:40:17 |
Re : apeler une fonction C

emmatopiak
|
salut,
Tu n'as pas mis tout le code sur le lien y'a que le .h...
Une autruche ne se cuit pas aux petits lardons.
|
|
jeudi 10 mai 2007 à 21:50:34 |
Re : apeler une fonction C

PoLoCh
|
bah le main.c le voila : #include <stdio.h> #include <stdlib.h> #include "main.h"
int test(){ return 1; }
int main(int argc, char *argv[]) { return 0; }
et mon form, c'est la que j'apelle ma fonction :
#pragma once extern "C" { // Fournir la déclaration de f(int i, char c, float x) #include "main.h" int test(); }
namespace teste {
using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing;
/// <summary> /// Summary for Form1 /// /// WARNING: If you change the name of this class, you will need to change the /// 'Resource File Name' property for the managed resource compiler tool /// associated with all .resx files this class depends on. Otherwise, /// the designers will not be able to interact properly with localized /// resources associated with this form. /// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: Add the constructor code here // }
protected: /// <summary> /// Clean up any resources being used. /// </summary> ~Form1() { if (components) { delete components; } } private: System::Windows::Forms::MenuStrip^ menuStrip1; protected: private: System::Windows::Forms::ToolStripMenuItem^ ficheiroToolStripMenuItem; private: System::Windows::Forms::ToolStripMenuItem^ abrirToolStripMenuItem; private: System::Windows::Forms::ToolStripMenuItem^ sairToolStripMenuItem; private: System::Windows::Forms::ToolStripMenuItem^ sairToolStripMenuItem1;
private: /// <summary> /// Required designer variable. /// </summary> System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> void InitializeComponent(void) { this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip()); this->ficheiroToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->abrirToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->sairToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->sairToolStripMenuItem1 = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->menuStrip1->SuspendLayout(); this->SuspendLayout(); // // menuStrip1 // this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(1) {this->ficheiroToolStripMenuItem}); this->menuStrip1->Location = System::Drawing::Point(0, 0); this->menuStrip1->Name = L"menuStrip1"; this->menuStrip1->Size = System::Drawing::Size(543, 24); this->menuStrip1->TabIndex = 0; this->menuStrip1->Text = L"menuStrip1"; // // ficheiroToolStripMenuItem // this->ficheiroToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(3) {this->abrirToolStripMenuItem, this->sairToolStripMenuItem, this->sairToolStripMenuItem1}); this->ficheiroToolStripMenuItem->Name = L"ficheiroToolStripMenuItem"; this->ficheiroToolStripMenuItem->Size = System::Drawing::Size(64, 20); this->ficheiroToolStripMenuItem->Text = L"Ficheiro"; // // abrirToolStripMenuItem // this->abrirToolStripMenuItem->Name = L"abrirToolStripMenuItem"; this->abrirToolStripMenuItem->Size = System::Drawing::Size(152, 22); this->abrirToolStripMenuItem->Text = L"Abrir"; this->abrirToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::abrirToolStripMenuItem_Click); // // sairToolStripMenuItem // this->sairToolStripMenuItem->Name = L"sairToolStripMenuItem"; this->sairToolStripMenuItem->Size = System::Drawing::Size(152, 22); this->sairToolStripMenuItem->Text = L"Configurar"; // // sairToolStripMenuItem1 // this->sairToolStripMenuItem1->Name = L"sairToolStripMenuItem1"; this->sairToolStripMenuItem1->Size = System::Drawing::Size(152, 22); this->sairToolStripMenuItem1->Text = L"Sair"; // // Form1 // this->AutoScaleDimensions = System::Drawing::SizeF(6, 14); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(543, 281); this->Controls->Add(this->menuStrip1); this->MainMenuStrip = this->menuStrip1; this->Name = L"Form1"; this->Text = L"Form1"; this->menuStrip1->ResumeLayout(false); this->menuStrip1->PerformLayout(); this->ResumeLayout(false); this->PerformLayout();
} #pragma endregion private: System::Void abrirToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { //int r = test(); test(); } }; }
je vous rapele je suis sur visual studio 2005
Victor Oliveira
|
|
lundi 14 mai 2007 à 13:36:55 |
Re : apeler une fonction C

emmatopiak
|
Salut,
C'est un code mixte, tu as du C et du CPP et des PRAGMA partout, je n'aide pas pour ce basar...
Une autruche ne se cuit pas aux petits lardons.
|
|
lundi 14 mai 2007 à 22:12:17 |
Re : apeler une fonction C

PoLoCh
|
C'est bon jme sui debrouillé :), merci quand meme a tou le monde...
Victor Oliveira
|
|
Cette discussion est classée dans : fonction, system, jai, teste, apeler
Répondre à ce message
Sujets en rapport avec ce message
Pb de class [ par SfyLer ]
Imaginons :class teste{public:void fonction();void fonction2();};int teste::fonction() {int a = 1;return 0;}int teste::fonction2() {//ici j'aimerais r
rediriger le retour d'une fonction ?! [ par kod32 ]
Salut,je souhaiterais dans mon programme (en C) stocker le résultat de la fonction system() dans un buffer.Malheureusement j'ai constaté que la foncti
Apeler Fonction WINAPI [ par tontonjab ]
voila, je voudrais apeler une fonction de type:INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR cmdline, INT )seulement, comme jutilise MFC je ne
fonction system() [ par casper_2 ]
Bonjour,jaimerais savoir comment pourrai-je avoir tous les fonctionnaliter de la focntion system(). Moi je connais ke ceci:system("pause"),system("cl
pointeurs vers une fonction [ par PunkDude424 ]
Bon j'ai le problème suivant....jai un programme avec un autre projet qui est dans une librairie externet qui est un LogWriter...quand je créee mon ob
commande system(); en C [ par shadow1779 ]
Bonjour, je viens de me procurer Visual Studio 2003, car j'avai plein de probleme avec dev c++, et quand je test le moindre programme comme celui ci c
fonction system avec windows [ par darkalpha ]
jutilise un programme afin de détecter quand un overflow se produit (le nombre de caractères) et le pb c que le programme entré avec system n'existe p
Probleme fonction [ par largo118 ]
Bonjours a tous je voudrait savoir comment il faut faire pour ouvrir un fichier .exe dont l'adresse contient un espace.Je vous montre mon probleme : J
Problème avec la fonction system() [ par bouba ]
Bonjour, dans un programme de dois lancer d'autres exécutables. J'ai utilisé la fonction system() pour réaliser l'exécution des ces progs. Ca marche m
Débutant pb de fonction [ par yann68moh ]
Bonjour tout le monde, je suis un débutant dans le language C++, j'utilise Visual C++ express.Je tente de programmer un client ftp spécifique mais je
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|