Shell Execute
-
Ich versuche mit ShellExecute(); ein externes programmzu start
aber visual c++ 2010 zeigt immer diesen Fehler an :error LNK2028: Nicht aufgelöstes Token (0A000011) ""extern "C" struct HINSTANCE__ * __stdcall ShellExecuteW(struct HWND__ *,wchar_t const *,wchar_t const *,wchar_t const *,wchar_t const *,int)" (?ShellExecuteW@@$$J224YGPAUHINSTANCE__@@PAUHWND__@@PB_W111H@Z)", auf das in Funktion ""private: void __clrcall Link::Form1::button1_Click(class System::Object ^,class System::EventArgs ^)" (?button1_Click@Form1@Link@@$$FAAAVObject@System@@P$AAVEventArgs@4@@Z)" verwiesen wird.
Link.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" struct HINSTANCE__ * __stdcall ShellExecuteW(struct HWND__ *,wchar_t const *,wchar_t const *,wchar_t const *,wchar_t const *,int)" (?ShellExecuteW@@$$J224YGPAUHINSTANCE__@@PAUHWND__@@PB_W111H@Z)" in Funktion ""private: void __clrcall Link::Form1::button1_Click(class System::Object ^,class System::EventArgs ^)" (?button1_Click@Form1@Link@@$$FAAAVObject@System@@P$AAVEventArgs@4@@Z)".
Mein Code :
#pragma once #include<Windows.h> #include<ShellAPI.h> #include<stdarg.h> namespace Link { 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> /// Zusammenfassung für Form1 /// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: Konstruktorcode hier hinzufügen. // } protected: /// <summary> /// Verwendete Ressourcen bereinigen. /// </summary> ~Form1() { if (components) { delete components; } } private: System::Windows::Forms::Button^ button1; protected: private: /// <summary> /// Erforderliche Designervariable. /// </summary> System::ComponentModel::Container ^components; #pragma region Windows Form Designer generated code /// <summary> /// Erforderliche Methode für die Designerunterstützung. /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. /// </summary> void InitializeComponent(void) { this->button1 = (gcnew System::Windows::Forms::Button()); this->SuspendLayout(); // // button1 // this->button1->Location = System::Drawing::Point(112, 107); this->button1->Name = L"button1"; this->button1->Size = System::Drawing::Size(75, 23); this->button1->TabIndex = 0; this->button1->Text = L"button1"; this->button1->UseVisualStyleBackColor = true; this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click); // // Form1 // this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(370, 262); this->Controls->Add(this->button1); this->Name = L"Form1"; this->Text = L"Form1"; this->ResumeLayout(false); } #pragma endregion private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { ShellExecuteW(NULL,LPCTSTR("open"),LPCTSTR("C:\\Windows\\explorer.exe"),NULL,NULL,SW_SHOW); } }; }
Bitte helft mir
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Du könntest dir einmal die Dokumentation der Funktion anschauen.
Unten sind wie bei allen Funktionen die Voraussetzungen angegeben, u.A. Shell32.lib. Diese musst du also nur den Linkereinstellungen hinzufügen.
-
Soweit ich weiß, ist das nicht WinAPI, sondern .NET.
-
Oh, den Code habe ich mir gar nicht angeschaut...
-
Danke für die schnelle Antwort
jetzt fuktioniert alles
-
Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum WinAPI in das Forum C++/CLI mit .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.