FindWindow/GetClassname Problem???



  • Warum geht das nicht???

    GetClassName gibt nichts zurück oder hab ich da was falsch verstanden ???

    CWnd cwnd;
    		 cwnd.m_hWnd=FindWindowEx(NULL,NULL,NULL,"tester");
    
    	if(!cwnd)
    		MessageBox("FindWindowEx failed","Error",MB_OK);
    	else
    	{
    		CWnd child;
    			 child.m_hWnd=FindWindowEx(cwnd,NULL,NULL,NULL);
    		if(!child) MessageBox("FindWindowEx failed [child]","Error",MB_OK);
    
    		char *chName=NULL;
    		if(GetClassName(child.m_hWnd,chName,600)>1)
    		{//Klasse gefunden
    
    			MessageBox((LPCTSTR)chName,"getclassname chname",MB_OK);
    			if(strcmp(chName,"CEdit"))
    			{
    				child.SendMessage(WM_SETTEXT,0,(LPARAM)"HAHA");
    				MessageBox("Message sent","OK",MB_OK);
    			}
    		}
    	}
    


  • Du musst für chName Speicher reservieren, also statt char *chName=NULL; (um bei deinem sonstigen Code zu bleiben) so:

    char chName[600];
    

    Bzw. statt char TCHAR verwenden, wenn du Unicode kompatibel sein willst 😉



  • problem ist nur:

    'GetClassNameA' : cannot convert parameter 2 from 'char *[1024]' to 'char *'

    und das kleinere übel:

    'strcmp' : cannot convert parameter 1 from 'char *[1024]' to 'const char *'



  • Kann es sein, dass du char *chName[1024] geschrieben hast 🙄



  • ja hab ich weil ohne das * krieg ich das und damit kann ich NIX anfangen!!!

    StdAfx.obj : error LNK2001: unresolved external symbol ___pfnBkCheck
    Projekt1.obj : error LNK2001: unresolved external symbol ___pfnBkCheck
    Debug/Project1.exe : fatal error LNK1120: 1 unresolved externals



  • Du musst es aber trotzdem ohne lassen, sonst verdrängt dieser zusätzliche Fehler nur den anderen - sieht danach aus, als hast du vergessen eine Lib zu linken 😉


Anmelden zum Antworten