char in unsigned int



  • LRESULT CALLBACK HookedWindowProcedure(HWND hwnd,UINT message,WPARAM wParam,LPARAM 
    lParam)
    
    char se[256];
    char lo[256];
    char la[256];
    GetModuleFileName(handle_module, se, sizeof(se));
    if (strchr(strchr(se,92),92) != NULL) *strrchr(se,92) = '\0';
    sprintf(lo, "%s\\Settings.ini", se); 
    GetPrivateProfileString("Key", "KeyON", NULL, la, sizeof(la), lo);
    
    {
    
    	switch(message)
    	{
    		case WM_KEYDOWN:
    		{
    
    			if(wParam==bla) {
    				MessageBox(0, "test", "", 32);
    			}
    
    .....
    
    error C2446: '==' : no conversion from 'char *' to 'unsigned int'
    

    Wie kann ich ein char * in ein unsigned int konvertieren?



  • char *a = (char*)0;
    unsigned int b = (unsigned int)a; // <--- so
    

    vorausgesetzt dass deine char* auch in ein int passen, was aber bei windoofs der fall ist.



  • atoi()



  • Ich hooke ein Fenster, dass bei einer Stringkonvertierung nicht mehr reagiert bzw. scheint die Funktion "GetAsyncKeyState" nicht mehr zu funktionieren.

    char gModule[256], gName[256], sName[256];
    GetModuleFileName(handle_module, gModule, sizeof(gModule));
    if (strchr(strchr(gModule,92),92) != NULL) *strrchr(gModule,92) = '\0'; 
    sprintf(gName, "%s\\Settings.ini", gModule);
    GetPrivateProfileString("Key", "KeyON", NULL, sName, sizeof(sName), gName);
    
    if(GetAsyncKeystate(sName)&1==1) {
    MessageBox(0, "hi", "", 32);
    }
    

    Da kommt wieder der selbe mist - das ich den string zu einem int konvertieren muss. Jedoch funktioniert weder atoi noch die konvertierung von "net". Wie kann ich am besten von einer INI die taste auslesen? gibt dazu irgendwo ein beispiel?



  • GetAsyncKeystate() erwartet meines Wissens nach einen Int-wert.
    Du fütterst die Funktion allerdings mit einem Characterarray.

    int intvar = (int) sName[index];

    Das sollte funktionieren.

    Im Zweifelsfall ein Element aus sName in eine einfache Character Variable speichern und diese konvertieren.



  • Kann VK_NUMPAD1 angeben das ist aber kein Integer=?



  • das ist eine definierte konstante und kein string, im prinzip steht dahinter auch wieder eine zahl. wenn du nach der deklaration suchst wirste finden welcher wert das ist.

    MfG RadiatioN


Anmelden zum Antworten