Borland Builder 5 findet _stricmp() nicht
-
Hallo leute habe ein Problem will dieses Programm unten Starten dabei habe ich diese fehlermeldung
[Linker Fehler] Unresolved external '_stricmp(const char *, const char *)' referenced from C:\PROGRAMME\BORLAND\CBUILDER5\PROJECTS\UWINAPI2.OBJ
Am Programm ist eigentlich alles richtig was findet mein Cmpiler nicht wisst ihr das vielleicht??bzw. warum kennt er die Funktion _stricmp() nicht?
ich arbeite mit Windows XP SP3
Bitte hilft mir wenn ihr könnt war schon bei WinApi die arbeiten auch noch dran.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <Psapi.h>#include "UWinApi2.h"
#include <string.h>
#include <winuser.h>#include <windows.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;void GetPathFromHandle(HWND hWnd, LPTSTR szPathFromHandle);
BOOL CALLBACK EnumProc(HWND hwnd, LPARAM lParam);
int _stricmp(const char *Buffer,const char *szPfadMitExe);//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender)
{
Timer1->Enabled=true;
}
//---------------------------------------------------------------------------void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
EnumWindows((WNDENUMPROC)EnumProc, NULL);
}
//---------------------------------------------------------------------------BOOL CALLBACK EnumProc(HWND hwnd, LPARAM lParam)
{
//
// Jetzt haben wir ein HWND irgendeines Fensters
// Also holen wir uns den Pfad zur zugehörigen EXE
//
char Buffer[MAX_PATH];
char szPfadMitExe[]="c:\Windows\NotePad.exe";
ZeroMemory(Buffer, sizeof(Buffer)); // Buffer leer machen...
GetPathFromHandle(hwnd, Buffer);
if (_stricmp(Buffer,szPfadMitExe)==NULL)
{// _stricmp vergleich 2 strings miteinander
// wobei es GROSS- und kleinschreibung
// komplett ignoriert!
// Oha, es MUSS notepad.exe sein!
// Also beenden wir es mal...
//
SendMessage(hwnd, WM_CLOSE, NULL, NULL);
return FALSE; // FALSE = EnumWindows kann aufhören
}
else return TRUE; // TRUE = weitermachen, Notepad ja noch nicht drangewesen!
}void GetPathFromHandle(HWND hWnd, LPTSTR szPathFromHandle)
{
//
// benötigt psapi.lib und psapi.h!!!
// läuft nur unter NT-basierenden Windows
// Also WinNT, Win2000, WinXP!
//
DWORD lpdwProcessId;
HANDLE hProcessHandle;GetWindowThreadProcessId(hWnd, &lpdwProcessId);
hProcessHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, TRUE, lpdwProcessId);
GetModuleFileNameEx(hProcessHandle, NULL, szPathFromHandle, MAX_PATH);
CloseHandle(hProcessHandle);
}
-
Warum hast du diese Frage eigentlich in allen verfügbaren Foren gepostet?
-
Hallo weil ich teiweise auf andre FAQ verwiesen worden bin mein meine Fehler beinhalten Probleme für die verschiedene FAQs deswegen auch.