2015-09-07 1 views
0

Essayer de redémarrer avec Visual C++ à l'aide de l'édition 2010 Express.Définition de la fonction à utiliser pour l'ensemble du projet Visual C++

Essayer de trouver quelque chose.

Si vous définissez une fonction dans le fichier Project.cpp, pourquoi ne puis-je pas l'utiliser dans le fichier Form1.h, en particulier le fichier privé: System::Void Form1_Load?

Je reçois cette erreur:

1>c:\users\boss\documents\visual studio 2010\projects\second\second\Form1.h(94): error C3861: 'Function': identifier not found 

Est-il possible de définir une fonction de sorte qu'il peut être utilisé partout?

dans Form1.h:

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { 
    this->txtMain->Text += FunctionX("Data"); 
    this->txtMain->SelectionStart = this->txtMain->Text->Length; 
} 

dans Project.cpp:

std::string FunctionX(std::string message) { 
    // other code here 
    return message; 
} 
+1

Semble il est C++/clr –

+0

Pouvez-vous fournir un exemple de code? –

+0

Il semble qu'il vous manque une déclaration forward et un marshal_as pour la conversion native vers CLI – Niall

Répondre

0
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { 
extern std::string FunctionX(std::string message); 
this->txtMain->Text += msclr::interop::marshal_as<System::String^>(FunctionX("Data")); 
this->txtMain->SelectionStart = this->txtMain->Text->Length; 
} 

Cela fonctionne! Merci pour les conseils.