Hi,
Ich versuche mit C++/CLI SendMessage und FindWindow zu verwenden.
Nach dem was ich bisher gelesen habe ist bei C++/CLI Invoking nicht nötig,
die Funktionen können angeblich einfach verwendet werden.
Ich hab also einfach ein neues CLR WinForms Projekt erstellt und die Windows.h included.
Um genau zu sein sieht das ganze so aus
Diese Funktion soll einen Standard C String per WinMessage versenden. Ich bekomme allerdings die Fehlermeldungen
error LNK2001: Nicht aufgelöstes externes Symbol ""extern "C" long __stdcall SendMessageW(struct HWND__ *,unsigned int,unsigned int,long)"
error LNK2001: Nicht aufgelöstes externes Symbol ""extern "C" struct HWND__ * __stdcall FindWindowW(wchar_t const *,wchar_t const *)"
Ich nehme an ich muss eine Dll einbinden – aber welche, und wie?
mfg,
Vielen Dank
Ich versuche mit C++/CLI SendMessage und FindWindow zu verwenden.
Nach dem was ich bisher gelesen habe ist bei C++/CLI Invoking nicht nötig,
die Funktionen können angeblich einfach verwendet werden.
Ich hab also einfach ein neues CLR WinForms Projekt erstellt und die Windows.h included.
Um genau zu sein sieht das ganze so aus
Code:
#pragma once #include <iostream> #include <windows.h> using namespace System; namespace MessageSys { public ref class MessageHandling { public: static void SendMessageToUnmanaged() { HWND hWnd = ::FindWindow(nullptr, L"Fenstername"); // in windows h deklariert //int WM_APP; //WM_APP = 0x8000; unsigned int WM_MYMSG; WM_MYMSG = WM_APP + 0x100; String ^message = "Hello world"; array<Byte> ^stringBytes = System::Text::Encoding::ASCII->GetBytes(message); pin_ptr<Byte> pStringBytes = &stringBytes[0]; const char *szByte = reinterpret_cast<const char *>(pStringBytes); std::string sMessage(szByte, stringBytes->Length); ::SendMessage( hWnd, WM_MYMSG, 0, reinterpret_cast<LPARAM>(sMessage.c_str()) ); } }; }
error LNK2001: Nicht aufgelöstes externes Symbol ""extern "C" long __stdcall SendMessageW(struct HWND__ *,unsigned int,unsigned int,long)"
error LNK2001: Nicht aufgelöstes externes Symbol ""extern "C" struct HWND__ * __stdcall FindWindowW(wchar_t const *,wchar_t const *)"
Ich nehme an ich muss eine Dll einbinden – aber welche, und wie?
mfg,
Vielen Dank
Comment