Win32, VC++ ,Linker, Dialogs, List Control und das alles ohne MFC - Hilfe bei den Projectproperties
-
Aloha,
ich bin noch recht grün hinter den Ohren, was VC++ betrifft, deshalb komm ich mit den Properties nicht zurecht.
Ich bin über dieses Tutorial gestolpert:
http://www.codeproject.com/KB/combobox/listview.aspx
Das läuft auch super, allerdings verstehe ich nicht, wie die es in dem Projekt hinbekommen haben, dass sie die normalen Controls in ihren Dialogen benutzen können.
Wenn ich in VS 2008 ein (leeres)Win32 Projekt, eine xy.cpp erstelle, eine Resourcedatei erstelle, nen Dialog reinlege un den dann mit ein paar Zeilen Code anzeigen lasse ist noch alles ok. Sobal ich aber auf die Idee kommen sollte ein List Control in den Dialog zu packen ist Feierabend. Das ganze wird mit der wenig sagenden Meldung:
The program '[2724] test5.exe: Native' has exited with code -1
beendet. (Ich glaube -1 bedeutet, dass er irgendwas nicht finden konnte, bin mir aber nicht sicher, vor allem sagt er ja auch nicht, was er überhaupt sucht
)Aufgefallen ist mir auch, dass bei mir beim compilen viel weniger steht:
'test5.exe': Loaded 'C:\Dokumente und Einstellungen\******\Eigene Dateien\Visual Studio 2008\Projects\test5\Debug\test5.exe', Symbols loaded. 'test5.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll' 'test5.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll' 'test5.exe': Loaded 'C:\WINDOWS\system32\user32.dll' 'test5.exe': Loaded 'C:\WINDOWS\system32\gdi32.dll' 'test5.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456\msvcr90d.dll', Symbols loaded. 'test5.exe': Loaded 'C:\WINDOWS\system32\uxtheme.dll' 'test5.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll' 'test5.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll' 'test5.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll' 'test5.exe': Loaded 'C:\WINDOWS\system32\MSCTF.dll'Bei dem Projekt aus dem Beispiel hingegen:
'keygen2.exe': Loaded 'C:\Dokumente und Einstellungen\******\Desktop\Article_src\Debug\keygen2.exe', Symbols loaded. 'keygen2.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\comctl32.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\gdi32.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\user32.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\ole32.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\uxtheme.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\MSCTF.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\clbcatq.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\oleaut32.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\comres.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\version.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\mshtml.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\shlwapi.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\shdocvw.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\crypt32.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\msasn1.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\cryptui.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\wintrust.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\imagehlp.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\netapi32.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\wininet.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\wldap32.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\msls31.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9\comctl32.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\riched20.dll' 'keygen2.exe': Unloaded 'C:\WINDOWS\system32\riched20.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\urlmon.dll' 'keygen2.exe': Loaded 'C:\WINDOWS\system32\mlang.dll'cool, wo haben die das eingestellt?
Unter
Project Properties ->Linker -> Import -> Additional Depedencies
hab ich schonodbc32.lib odbccp32.lib comctl32.lib
mit angegeben aber auch das hat nichts geholfen. (Ich dachte, das comctl32.lib sei die Lösung)
Am anfang meiner xy.cpp HAb ich:
#include <windows.h>
#include <stdio.h>
#include <commctrl.h>
#include "resource.h"gepackt, geändert hat das jedoch auch nichts

danke für eure Hilfe, shortee
-
InitCommonControlsEx aufgerufen?
-
Vielen Dank sri, genau das war es. Nachdem ich die WinMain um die Zeilen 4-7 ergänzt habe, läuft es tadellos

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwICC = ICC_LISTVIEW_CLASSES; InitCtrls.dwSize = sizeof(INITCOMMONCONTROLSEX); BOOL bRet = InitCommonControlsEx(&InitCtrls); return DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DlgProc); }