Crash bei Verbindung zu WMI / COM ***25 EURO Gutschein für Fix***
-
Hallo zusammen,
es ist normalerweise nicht meine Art, bei Problemen in Foren zu posten. Diesen Bug hier kriege ich allerdings schon seit etwa 4 Wochen nicht gelöst. Ich habe in mein Programm eine Methode implementiert, die eine Hardware ID aus der mainboard + mac ID berechnen soll.. das funktioniert soweit auch meistens. Die MB ID kann ausgelesen werden. Manchmal jedoch (charakteristika einer race condition), crasht das ganze in der ConnectServer() Funktionion mit einer Access Violation:
Eine Ausnahme (erste Chance) bei 0x75035d7e (KernelBase.dll) in MeineUI.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00b1f02e.
Unbehandelte Ausnahme bei 0x75035d7e (KernelBase.dll) in MeineUI.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00b1f02e.Stack Trace:
KernelBase.dll!_QueryRegValue@24() + 0xe9 Bytes
KernelBase.dll!_ValidateLocaleRegistryKey@12() + 0x3f Bytes
KernelBase.dll!_MakeNamedLocaleHashNode@8() + 0xa7 Bytes
KernelBase.dll!@GetNamedLocaleHashNode@8() + 0x56 Bytes
KernelBase.dll!_NlsValidateNamedLocale@4() + 0xf Bytes
KernelBase.dll!_LocaleNameToLCID@8() + 0x17 Bytes
wbemcomn.dll!CMUILocale::_LocaleNameToLCID() + 0x2a Bytes
wbemcomn.dll!CMUILocale::LocaleName_To_LCID() + 0x2c Bytes
wbemcomn.dll!CMUILocale::GetPreferredLanguages() - 0x75 Bytes
wbemprox.dll!CDCOMTrans::DoActualConnection() + 0x30c Bytes
wbemprox.dll!CDCOMTrans::DoConnection() + 0x27 Bytes
wbemprox.dll!CLocator::ConnectServer() + 0x79 Bytes
> meine.exe!Engine::calcMainboardID() Zeile 166 + 0x27 Bytes C++
meine.exe!Engine::Engine() Zeile 37 + 0xf Bytes C++
meine.exe!Engine::getInstance() Zeile 40 + 0x22 Bytes C++
meine.exe!MeineApplication::MeineApplication(int argc=1, char * * argv=0x002a2178) Zeile 22 + 0x9 Bytes C++
meine.exe!main(int argc=1, char * * argv=0x002a2178) Zeile 53 + 0x10 Bytes C++
meine.exe!__tmainCRTStartup() Zeile 278 + 0x19 Bytes C
meine.exe!mainCRTStartup() Zeile 189 C
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 Bytes
ntdll.dll!___RtlUserThreadStart@8() + 0x27 Bytes
ntdll.dll!__RtlUserThreadStart@8() + 0x1b BytesWie man also sieht, kommt das ganze tief aus der Kernelbase.dll... normalerweise hat das nichts zu bedeuten und der fehler liegt trotzdem in meinem Code, aber bei diesem Fehler bin ich mir nichtmehr so ganz sicher. Ich habe meinen WMI Code aus der offiziellen Example App von Microsoft, um ganz sicher zu gehen es richtig zu nutzen. Trotzdem hier mein Code:
std::string Engine::calcMainboardID() { HRESULT hres; // Initialize COM. hres = CoInitializeEx(0, COINIT_MULTITHREADED); //hres = CoInitialize(0); if (FAILED(hres)) { std::cout << "Failed to initialize COM library. " << "Error code = 0x" << hex << hres << endl; //return std::string("fail1"); // Program has failed. } // Initialize hres = CoInitializeSecurity( NULL, -1, // COM negotiates service NULL, // Authentication services NULL, // Reserved RPC_C_AUTHN_LEVEL_DEFAULT, // authentication RPC_C_IMP_LEVEL_IMPERSONATE, // Impersonation NULL, // Authentication info EOAC_NONE, // Additional capabilities NULL // Reserved ); if (FAILED(hres)) { std::cout << "Failed to initialize security. " << "Error code = 0x" << hex << hres << endl; // CoUninitialize(); return std::string("fail2"); // Program has failed. } // Obtain the initial locator to Windows Management on a particular host computer. IWbemLocator *pLoc = 0; hres = CoCreateInstance( CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *) &pLoc); if (FAILED(hres) || !pLoc) { std::cout << "Failed to create IWbemLocator object. " << "Error code = 0x" << hex << hres << endl; // CoUninitialize(); return std::string("fail3"); // Program has failed. } IWbemServices *pSvc = 0; std::cout << "before var \n"; _bstr_t testVar = _bstr_t("ROOT\\CIMV2"); std::cout << "before connect \n"; qDebug() << "ploc is: " << pLoc << "::" << endl; // Connect to the root\cimv2 namespace with the current user and obtain pointer pSvc to make IWbemServices calls hres = pLoc->ConnectServer( testVar, // WMI namespace NULL, // User name NULL, // User password 0, // Locale NULL, // Security flags 0, // Authority 0, // Context object &pSvc // IWbemServices proxy ); ///////// TODO: Hier ist Crash ///////////// std::cout << "after connect \n"; if (FAILED(hres)) { std::cout << "Could not connect. Error code = 0x" << hex << hres << endl; pLoc->Release(); // CoUninitialize(); return std::string("fail4"); // Program has failed. } std::cout << "Connected to ROOT\\CIMV2 WMI namespace" << endl; // Set the IWbemServices proxy so that impersonation of the user (client) occurs. hres = CoSetProxyBlanket( pSvc, // the proxy to set RPC_C_AUTHN_WINNT, // authentication service RPC_C_AUTHZ_NONE, // authorization service NULL, // Server principal name RPC_C_AUTHN_LEVEL_CALL, // authentication level RPC_C_IMP_LEVEL_IMPERSONATE, // impersonation level NULL, // client identity EOAC_NONE // proxy capabilities ); if (FAILED(hres)) { cout << "Could not set proxy blanket. Error code = 0x" << hex << hres << endl; pSvc->Release(); pLoc->Release(); // CoUninitialize(); return std::string("fail5"); // Program has failed. } // Use the IWbemServices pointer to make requests of WMI. Make requests here: std::cout << "before query \n"; // For example, query for all the running processes IEnumWbemClassObject* pEnumerator = NULL; hres = pSvc->ExecQuery( bstr_t("WQL"), bstr_t("SELECT * FROM Win32_BaseBoard"), //Win32_Process"), WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumerator); if (FAILED(hres)) { cout << "Query for processes failed. " << "Error code = 0x" << hex << hres << endl; pSvc->Release(); pLoc->Release(); // CoUninitialize(); return std::string("fail6"); // Program has failed. } else { IWbemClassObject *pclsObj; ULONG uReturn = 0; std::cout << "debug 122 \n"; while (pEnumerator) { std::cout << "DEBUG 123\n"; hres = pEnumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn); if(0 == uReturn) { break; } VARIANT vtProp; // Get the value of the SerialNumber property hres = pclsObj->Get(L"SerialNumber"/*"Name"*/, 0, &vtProp, 0, 0); //wcout << "Process Name : " << vtProp.bstrVal << endl; std::cout << "before copyString \n"; // Convert output to std::string std::wstring outputW(vtProp.bstrVal, SysStringLen(vtProp.bstrVal)); std::string output(outputW.begin(), outputW.end()); VariantClear(&vtProp); return output; } } // Cleanup // ======== /*pSvc->Release(); pLoc->Release(); CoUninitialize(); */ return std::string("fail77"); }
Ich habe hier momentan die release/uninit dinger auskommentiert weil ich den Verdacht hatte das ich etwas freigebe, was ich nicht hätte freigeben sollen. Das ganze brachte aber keine Änderung. Auch tritt der Crash manchmal mehrmals hintereinander auf oder beim der ersten Ausführung nach System Restart, sodass ich es wage auszuschließen das es am nicht ordentlichem aufräumen liegt.
Nun, in welcher Umgebung crasht das ganze ? Ich nutze Visual C++ via MSVC 2010, habe ein multi-projekt setup (Libary, App) obwohl die Einstellungen in allen Projekten eigtl. identisch sind. Ich kann jedoch nicht ausschließen, dass das ganze mit einer ungeeigneten Konfiguration zusammenhängt (z.B. musste ich x86 als TargetMachine entfernen, sodass er eigtl. universell compilen sollte). Ich öffne viele viele Threads in meinem Program, allerdings eigtl. erst später nachdem dieser Code ausgeführt wurde.
Als kleinen Anreiz mir bei diesem schwierigem Problem zu helfen, bin ich bereit für denjenigen der mir als erster helfen kann das Problem final zu fixxen, einen 25 EURO Gutschein (z.B. Amazon / Ikea / Rewe / ...) zu spendieren. Ich werde aber ggf. auch in weiteren Foren (MSDN) posten.
Jeder Verdacht, um was für eine Art von problem es sich handeln könnte ist willkommen.
Grüße
jah1993
-
Hier noch der Auszug aus der DLL Assembly, falls jemand daraus etwas ablesen kann:
_QueryRegValue@24: 75035C95 8B FF mov edi,edi 75035C97 55 push ebp 75035C98 8B EC mov ebp,esp 75035C9A 83 EC 0C sub esp,0Ch 75035C9D 8B 45 1C mov eax,dword ptr [ebp+1Ch] 75035CA0 53 push ebx 75035CA1 56 push esi 75035CA2 33 F6 xor esi,esi 75035CA4 57 push edi 75035CA5 89 75 FC mov dword ptr [ebp-4],esi 75035CA8 3B C6 cmp eax,esi 75035CAA 74 02 je _QueryRegValue@24+19h (75035CAEh) 75035CAC 89 30 mov dword ptr [eax],esi 75035CAE FF 75 0C push dword ptr [ebp+0Ch] 75035CB1 8D 45 F4 lea eax,[ebp-0Ch] 75035CB4 50 push eax 75035CB5 FF 15 94 10 00 75 call dword ptr [__imp__RtlInitUnicodeString@8 (75001094h)] 75035CBB FF 75 14 push dword ptr [ebp+14h] 75035CBE 56 push esi 75035CBF 8B 75 10 mov esi,dword ptr [ebp+10h] 75035CC2 FF 36 push dword ptr [esi] 75035CC4 E8 67 12 00 00 call _memset (75036F30h) 75035CC9 8B 3D 18 11 00 75 mov edi,dword ptr [__imp__NtQueryValueKey@24 (75001118h)] 75035CCF 83 C4 0C add esp,0Ch 75035CD2 8D 45 0C lea eax,[ebp+0Ch] 75035CD5 50 push eax 75035CD6 FF 75 14 push dword ptr [ebp+14h] 75035CD9 33 DB xor ebx,ebx 75035CDB FF 36 push dword ptr [esi] 75035CDD 43 inc ebx 75035CDE 53 push ebx 75035CDF 8D 45 F4 lea eax,[ebp-0Ch] 75035CE2 50 push eax 75035CE3 FF 75 08 push dword ptr [ebp+8] 75035CE6 FF D7 call edi 75035CE8 89 45 14 mov dword ptr [ebp+14h],eax 75035CEB 3D 05 00 00 80 cmp eax,80000005h 75035CF0 75 59 jne _QueryRegValue@24+0B6h (75035D4Bh) 75035CF2 83 7D 1C 00 cmp dword ptr [ebp+1Ch],0 75035CF6 74 53 je _QueryRegValue@24+0B6h (75035D4Bh) 75035CF8 64 A1 18 00 00 00 mov eax,dword ptr fs:[00000018h] 75035CFE FF 75 0C push dword ptr [ebp+0Ch] 75035D01 8B 40 30 mov eax,dword ptr [eax+30h] 75035D04 6A 08 push 8 75035D06 FF 70 18 push dword ptr [eax+18h] 75035D09 FF 15 18 10 00 75 call dword ptr [__imp__RtlAllocateHeap@12 (75001018h)] 75035D0F 89 45 FC mov dword ptr [ebp-4],eax 75035D12 85 C0 test eax,eax 75035D14 75 0A jne _QueryRegValue@24+8Bh (75035D20h) 75035D16 B8 17 00 00 C0 mov eax,0C0000017h 75035D1B E9 9A 00 00 00 jmp _QueryRegValue@24+125h (75035DBAh) 75035D20 FF 75 0C push dword ptr [ebp+0Ch] 75035D23 89 06 mov dword ptr [esi],eax 75035D25 6A 00 push 0 75035D27 50 push eax 75035D28 E8 03 12 00 00 call _memset (75036F30h) 75035D2D 83 C4 0C add esp,0Ch 75035D30 8D 45 0C lea eax,[ebp+0Ch] 75035D33 50 push eax 75035D34 FF 75 0C push dword ptr [ebp+0Ch] 75035D37 8D 45 F4 lea eax,[ebp-0Ch] 75035D3A FF 36 push dword ptr [esi] 75035D3C 53 push ebx 75035D3D 50 push eax 75035D3E FF 75 08 push dword ptr [ebp+8] 75035D41 FF D7 call edi 75035D43 89 45 14 mov dword ptr [ebp+14h],eax 75035D46 8B 45 1C mov eax,dword ptr [ebp+1Ch] 75035D49 89 18 mov dword ptr [eax],ebx 75035D4B 8B 45 18 mov eax,dword ptr [ebp+18h] 75035D4E 33 D2 xor edx,edx 75035D50 B9 4C 01 00 C0 mov ecx,0C000014Ch 75035D55 3B C2 cmp eax,edx 75035D57 74 0A je _QueryRegValue@24+0CEh (75035D63h) 75035D59 8B 3E mov edi,dword ptr [esi] 75035D5B 39 47 04 cmp dword ptr [edi+4],eax 75035D5E 74 03 je _QueryRegValue@24+0CEh (75035D63h) 75035D60 89 4D 14 mov dword ptr [ebp+14h],ecx 75035D63 8B 36 mov esi,dword ptr [esi] 75035D65 39 5E 04 cmp dword ptr [esi+4],ebx 75035D68 75 1E jne _QueryRegValue@24+0F3h (75035D88h) 75035D6A 8B 46 0C mov eax,dword ptr [esi+0Ch] 75035D6D 84 C3 test bl,al 75035D6F 75 14 jne _QueryRegValue@24+0F0h (75035D85h) 75035D71 83 F8 02 cmp eax,2 75035D74 72 0F jb _QueryRegValue@24+0F0h (75035D85h) 75035D76 8B 7E 08 mov edi,dword ptr [esi+8] 75035D79 D1 E8 shr eax,1 75035D7B 8D 04 47 lea eax,[edi+eax*2] 75035D7E 66 39 54 30 FE cmp word ptr [eax+esi-2],dx 75035D83 74 03 je _QueryRegValue@24+0F3h (75035D88h) 75035D85 89 4D 14 mov dword ptr [ebp+14h],ecx 75035D88 39 55 14 cmp dword ptr [ebp+14h],edx 75035D8B 7D 2B jge _QueryRegValue@24+123h (75035DB8h) 75035D8D 8B 45 1C mov eax,dword ptr [ebp+1Ch] 75035D90 3B C2 cmp eax,edx 75035D92 74 1F je _QueryRegValue@24+11Eh (75035DB3h) 75035D94 39 10 cmp dword ptr [eax],edx 75035D96 74 1B je _QueryRegValue@24+11Eh (75035DB3h) 75035D98 39 55 FC cmp dword ptr [ebp-4],edx 75035D9B 74 16 je _QueryRegValue@24+11Eh (75035DB3h) 75035D9D FF 75 FC push dword ptr [ebp-4] 75035DA0 64 A1 18 00 00 00 mov eax,dword ptr fs:[00000018h] 75035DA6 8B 40 30 mov eax,dword ptr [eax+30h] 75035DA9 52 push edx 75035DAA FF 70 18 push dword ptr [eax+18h] 75035DAD FF 15 14 10 00 75 call dword ptr [__imp__RtlFreeHeap@12 (75001014h)] 75035DB3 8B 45 14 mov eax,dword ptr [ebp+14h] 75035DB6 EB 02 jmp _QueryRegValue@24+125h (75035DBAh) 75035DB8 33 C0 xor eax,eax 75035DBA 5F pop edi 75035DBB 5E pop esi 75035DBC 5B pop ebx 75035DBD C9 leave 75035DBE C2 18 00 ret 18h 75035DC1 CC int 3 75035DC2 CC int 3 75035DC3 CC int 3 75035DC4 CC int 3 75035DC5 CC int 3
(Quelle: KernelBase.dll // _QueryRegValue)
-
Mach doch mal ein frisches Konsolenapp-Projekt und schau, ob es dort auch crasht...
-
Nimm noch mal das Original-Beispiel:
http://msdn.microsoft.com/en-us/library/aa390423
-
Beides getestet. Original Code von Microsoft hat wie erwartet keine Änderung gebracht. Ich habe den Code ja nur minimal geändert gehabt und das auch nur ganz unten und nicht beim connect part.
Eine frische Konsolen-App zeigt vorerst keine Crashs, wobei dies auch einfach bedeuten kann das dort das Timing den Fehler nicht auslöst (siehe oben; das Verhalten ähnelt einer Race Condition sehr). Ich poste einfach mal meine Projekt Konfiguration, vlt. sieht jemand dort inkompatiblitäten:
[code]<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{12345678-1234-1234-123456789012345}</ProjectGuid>
<Keyword>Qt4VSv1.0</Keyword>
</PropertyGroup>
<Import Project="(VCTargetsPath)\\Microsoft.Cpp.Default.props" />(VCTargetsPath)\Microsoft.Cpp.props" /> (Configuration)|
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="(UserRootDir)\\Microsoft.Cpp.(Platform).user.props" Condition="exists('(UserRootDir)\\Microsoft.Cpp.(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="(UserRootDir)\\Microsoft.Cpp.(Platform).user.props" Condition="exists('(UserRootDir)\\Microsoft.Cpp.(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<CodeAnalysisRuleSet Condition="'(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'(Platform)'=='Release|Win32'" />
<OutDir Condition="'(Platform)'=='Debug|Win32'">(Platform)\(Configuration)\\ (SolutionDir)(Platform)\\(Configuration)\</OutDir>
<IncludePath Condition="'(Platform)'=='Release|Win32'">C:\Users\myName\Documents\libs;(Configuration)|(Platform)'=='Release|Win32'">C:\\Users\\myName\\Documents\\Visual Studio 2010\\Projects\\myLibrary\\Release;(LibraryPath)</LibraryPath>
<IgnoreImportLibrary Condition="'(Platform)'=='Release|Win32'">false</IgnoreImportLibrary>
<LinkIncremental Condition="'(Platform)'=='Release|Win32'">false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'(Platform)'=='Debug|Win32'">
<ClCompile>
<PreprocessorDefinitions>UNICODE;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_XML_LIB;_HAS_ITERATOR_DEBUGGING=1;_ITERATOR_DEBUG_LEVEL=2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.\GeneratedFiles;.;(QTDIR)\\include;.\\GeneratedFiles\\(ConfigurationName);(QTDIR)\\include\\QtCore;(QTDIR)\include\QtGui;(QTDIR)\\include\\QtNetwork;(QTDIR)\include\QtXml;C:\Users\myName\Documents\libs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Disabled</Optimization>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>StdAfx.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>(TargetName).pch</PrecompiledHeaderOutputFile>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
<AdditionalOptions>/D "_HAS_ITERATOR_DEBUGGING=1" %(AdditionalOptions)</AdditionalOptions>
<PreprocessKeepComments>true</PreprocessKeepComments>
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
<StructMemberAlignment>Default</StructMemberAlignment>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<AssemblerOutput>All</AssemblerOutput>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<OutputFile>(OutDir)\\(ProjectName).exe</OutputFile>
<AdditionalLibraryDirectories>C:\Users\myName\Documents\libs\luajit2\src_debug;C:\Users\myName\Documents\libs\QtDebug;(QTDIR)\\lib;C:\\Users\\myName\\Documents\\libs;C:\\Users\\myName\\Documents\\Visual Studio 2010\\Projects\\myLibrary\\Debug;C:\\Users\\myName\\Documents\\Visual Studio 2010\\Projects\\myLibrary\\Win32\\Debug;%(AdditionalLibraryDirectories)true comsuppw.lib;Imm32.lib;Winmm.lib;ws2_32.lib;LibcmtD.lib;qtmaind.lib;QtCored.lib;QtGuid.lib;QtNetworkd.lib;myLibary.lib;QtXmld.lib;lua51.lib;wbemuuid.lib;%(AdditionalDependencies) false libcmtd.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries) true MultiplyDefinedSymbolOnly true true NotSet false UNICODE;QT\_NO\_DEBUG;NDEBUG;QT\_CORE\_LIB;QT\_GUI\_LIB;QT\_NETWORK\_LIB;QT\_XML\_LIB;%(PreprocessorDefinitions) .\\GeneratedFiles;.;(QTDIR)\include;.\GeneratedFiles\(QTDIR)\include\QtCore;(QTDIR)\\include\\QtGui;(QTDIR)\include\QtNetwork;(QTDIR)\\include\\QtXml;C:\\Users\\myName\\Documents\\libs;%(AdditionalIncludeDirectories) MultiThreaded false Use StdAfx.h (IntDir)(OutDir)\(QTDIR)\lib;C:\Users\myName\Documents\libs;C:\Users\myName\Documents\Visual Studio 2010\Projects\myLibrary\Release;C:\Users\myName\Documents\Visual Studio 2010\Projects\myLibrary\Win32\Release;C:\Users\myName\Documents\libs\ljit2;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>Imm32.lib;Winmm.lib;ws2_32.lib;Libcmt.lib;qtmain.lib;QtCore.lib;QtGui.lib;QtNetwork.lib;QtXmlPatterns.lib;QtXml.lib;myLibary.lib;wbemuuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
<TurnOffAssemblyGeneration>false</TurnOffAssemblyGeneration>
<SetChecksum>true</SetChecksum>
<IgnoreSpecificDefaultLibraries>Libcmt.lib</IgnoreSpecificDefaultLibraries>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateMapFile>true</GenerateMapFile>
<MapExports>true</MapExports>
<AssemblyDebug>true</AssemblyDebug>
<EnableCOMDATFolding>false</EnableCOMDATFolding>
<OptimizeReferences>false</OptimizeReferences>
<ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>
<TargetMachine>NotSet</TargetMachine>
</Link>
<ProjectReference>
<UseLibraryDependencyInputs>true</UseLibraryDependencyInputs>
</ProjectReference>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\clientOverlay\clientOverlay\clientoverlay.cpp" />
<ClCompile Include="addFileDialog.cpp" />
<ClCompile Include="AnalyzerCooldownAbstract.cpp" />
<ClCompile Include="AnalyzerCooldownClient.cpp" />
<ClCompile Include="AnalyzerCooldownPotion.cpp" />
<ClCompile Include="AnalyzerMessageBuffer.cpp" />
<ClCompile Include="AnalyzerMessageListenerAbstract.cpp" />
<ClCompile Include="AnalyzerMessageListenerAll.cpp" />
<ClCompile Include="AnalyzerMessageListenerFail.cpp" />
<ClCompile Include="AnalyzerMessageListenerLoot.cpp" />
<ClCompile Include="AnalyzerMessageListenerNPC.cpp" />
<ClCompile Include="AnalyzerMessageListenerStatusDoorFail.cpp" />
<ClCompile Include="AnalyzerMessageListenerUsing.cpp" />
<ClCompile Include="AnalyzerMessageListenerYouSee.cpp" />
<ClCompile Include="AnalyzerModuleChat.cpp" />
<ClCompile Include="AnalyzerModuleCooldown.cpp" />
<ClCompile Include="BaseItem.cpp" />
<ClCompile Include="Cavebot.cpp" />
<ClCompile Include="CavebotAttacksItem.cpp" />
<ClCompile Include="CavebotItem.cpp" />
<ClCompile Include="CavebotLooter.cpp" />
<ClCompile Include="CavebotMonstersItem.cpp" />
<ClCompile Include="CavebotSmartWalker.cpp" />
<ClCompile Include="CavebotTargettingRule.cpp" />
<ClCompile Include="CavebotWalker.cpp" />
<ClCompile Include="CavebotWalkerAbstract.cpp" />
<ClCompile Include="CavebotWaypointAbstract.cpp" />
<ClCompile Include="CavebotWaypointDoor.cpp" />
<ClCompile Include="CavebotWaypointNode.cpp" />
<ClCompile Include="CavebotWaypointPick.cpp" />
<ClCompile Include="CavebotWaypointRope.cpp" />
<ClCompile Include="CavebotWaypointShovel.cpp" />
<ClCompile Include="CavebotWaypointStand.cpp" />
<ClCompile Include="CavebotWaypointWeapon.cpp" />
<ClCompile Include="chooseFileDialog.cpp" />
<ClCompile Include="ConfigurationTree.cpp" />
<ClCompile Include="ContainerHelper.cpp" />
<ClCompile Include="deleteFileDialog.cpp" />
<ClCompile Include="editFileDialog.cpp" />
<ClCompile Include="Engine.cpp" />
<ClCompile Include="EngineInstance.cpp" />
<ClCompile Include="EngineModule.cpp" />
<ClCompile Include="ExampleDelegate.cpp" />
<ClCompile Include="ExportTradeData.cpp" />
<ClCompile Include="ExportTradeGUI.cpp" />
<ClCompile Include="FileIndexTreeItem.cpp" />
<ClCompile Include="FileIndexTreeModel.cpp" />
<ClCompile Include="FileListEntry.cpp" />
<ClCompile Include="FileProxyModel.cpp" />
<ClCompile Include="FolderProxyModel.cpp" />
<ClCompile Include="GeneratedFiles\Debug\moc_addFileDialog.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_AnalyzerCooldownAbstract.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_AnalyzerCooldownPotion.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_Cavebot.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_chooseFileDialog.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_clientoverlay.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_deleteFileDialog.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_editFileDialog.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_Engine.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_EngineInstance.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_ExampleDelegate.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_ExportTradeGUI.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_FileIndexTreeModel.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_FileProxyModel.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_FolderProxyModel.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_Healer.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_HUD.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_HudWidget.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_ItemActionButton.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_mapviewer.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_OverlayUI.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_MyApplication.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_ProxyModel.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_ScriptEditorUI.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_TreeModel.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_TreeviewDelegate.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_UIChooseWidget.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_unionui.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\qrc_unionui.cpp">
<PrecompiledHeader Condition="'(Platform)'=='Debug|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'(Platform)'=='Release|Win32'">
</PrecompiledHeader>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_addFileDialog.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_AnalyzerCooldownAbstract.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_AnalyzerCooldownPotion.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_Cavebot.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_chooseFileDialog.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_clientoverlay.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_deleteFileDialog.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_editFileDialog.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_Engine.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_EngineInstance.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_ExampleDelegate.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_ExportTradeGUI.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_FileIndexTreeModel.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_FileProxyModel.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_FolderProxyModel.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_Healer.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_HUD.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_HudWidget.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_ItemActionButton.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_mapviewer.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_OverlayUI.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_MyApplication.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_ProxyModel.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_ScriptEditorUI.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_TreeModel.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_TreeviewDelegate.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_UIChooseWidget.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_unionui.cpp">
<ExcludedFromBuild Condition="'(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Healer.cpp" />
<ClCompile Include="HealerItem.cpp" />
<ClCompile Include="HealerMethod.cpp" />
<ClCompile Include="HealerRule.cpp" />
<ClCompile Include="HealerRuleCooldownList.cpp" />
<ClCompile Include="HealerRulesItem.cpp" />
<ClCompile Include="HotkeyHelper.cpp" />
<ClCompile Include="HUD.cpp" />
<ClCompile Include="HudDockAnchor.cpp" />
<ClCompile Include="HudWidget.cpp" />
<ClCompile Include="HudWidgetObject.cpp" />
<ClCompile Include="HudWidgetObjectRect.cpp" />
<ClCompile Include="HudWidgetObjectText.cpp" />
<ClCompile Include="ItemActionButton.cpp" />
<ClCompile Include="LuaFunctionsHUD.cpp" />
<ClCompile Include="LuaInstance.cpp" />
<ClCompile Include="LuaScript.cpp" />
<ClCompile Include="main.cpp" />
<ClCompile Include="mapviewer.cpp" />
<ClCompile Include="MinimapTile.cpp" />
<ClCompile Include="OverlayUI.cpp" />
<ClCompile Include="PathFinder.cpp" />
<ClCompile Include="MyApplication.cpp" />
<ClCompile Include="ProxyModel.cpp" />
<ClCompile Include="ScriptEditorUI.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="TreeItem.cpp" />
<ClCompile Include="TreeModel.cpp" />
<ClCompile Include="TreeviewDelegate.cpp" />
<ClCompile Include="UIChooseWidget.cpp" />
<ClCompile Include="UILabel.cpp" />
<ClCompile Include="unionui.cpp" />
<ClCompile Include="UtilDatHelper.cpp" />
<ClCompile Include="UtilGUIHelper.cpp" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\clientOverlay\clientOverlay\clientoverlay.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing clientoverlay.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../../../clientOverlay/clientOverlay/clientoverlay.h"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing clientoverlay.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../../../clientOverlay/clientOverlay/clientoverlay.h"</Command>
</CustomBuild>
<CustomBuild Include="addFileDialog.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing addFileDialog.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" "-fStdAfx.h" "-f../../addFileDialog.h" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing addFileDialog.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" "-fStdAfx.h" "-f../../addFileDialog.h" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs"</Command>
</CustomBuild>
<ClInclude Include="addresses.h" />
<CustomBuild Include="AnalyzerCooldownAbstract.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing AnalyzerCooldownAbstract.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../AnalyzerCooldownAbstract.h"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing AnalyzerCooldownAbstract.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../AnalyzerCooldownAbstract.h"</Command>
</CustomBuild>
<ClInclude Include="AnalyzerCooldownClient.h" />
<CustomBuild Include="AnalyzerCooldownPotion.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing AnalyzerCooldownPotion.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../AnalyzerCooldownPotion.h"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing AnalyzerCooldownPotion.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../AnalyzerCooldownPotion.h"</Command>
</CustomBuild>
<ClInclude Include="AnalyzerMessageBuffer.h" />
<ClInclude Include="AnalyzerMessageListenerAbstract.h" />
<ClInclude Include="AnalyzerMessageListenerAll.h" />
<ClInclude Include="AnalyzerMessageListenerFail.h" />
<ClInclude Include="AnalyzerMessageListenerLoot.h" />
<ClInclude Include="AnalyzerMessageListenerNPC.h" />
<ClInclude Include="AnalyzerMessageListenerStatusDoorFail.h" />
<ClInclude Include="AnalyzerMessageListenerUsing.h" />
<ClInclude Include="AnalyzerMessageListenerYouSee.h" />
<ClInclude Include="AnalyzerModuleChat.h" />
<ClInclude Include="AnalyzerModuleCooldown.h" />
<ClInclude Include="BaseItem.h" />
<ClInclude Include="CavebotWaypointDoor.h" />
<ClInclude Include="CavebotWaypointNode.h" />
<ClInclude Include="CavebotWaypointPick.h" />
<ClInclude Include="CavebotWaypointRope.h" />
<ClInclude Include="CavebotWaypointShovel.h" />
<ClInclude Include="CavebotWaypointWeapon.h" />
<CustomBuild Include="chooseFileDialog.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing chooseFileDialog.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" "-fStdAfx.h" "-f../../chooseFileDialog.h" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing chooseFileDialog.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" "-fStdAfx.h" "-f../../chooseFileDialog.h" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs"</Command>
</CustomBuild>
<ClInclude Include="ContainerHelper.h" />
<CustomBuild Include="MyApplication.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing MyApplication.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../MyApplication.h"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing MyApplication.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../MyApplication.h"</Command>
</CustomBuild>
<CustomBuild Include="editFileDialog.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing editFileDialog.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" "-fStdAfx.h" "-f../../editFileDialog.h" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing editFileDialog.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" "-fStdAfx.h" "-f../../editFileDialog.h" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs"</Command>
</CustomBuild>
<CustomBuild Include="deleteFileDialog.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing deleteFileDialog.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" "-fStdAfx.h" "-f../../deleteFileDialog.h" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing deleteFileDialog.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" "-fStdAfx.h" "-f../../deleteFileDialog.h" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs"</Command>
</CustomBuild>
<ClInclude Include="ExportTradeData.h" />
<CustomBuild Include="ExportTradeGUI.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing ExportTradeGUI.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../ExportTradeGUI.h"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing ExportTradeGUI.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../ExportTradeGUI.h"</Command>
</CustomBuild>
<ClInclude Include="FileIndexTreeItem.h" />
<CustomBuild Include="FileIndexTreeModel.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing FileIndexTreeModel.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" "-fStdAfx.h" "-f../../FileIndexTreeModel.h" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing FileIndexTreeModel.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" "-fStdAfx.h" "-f../../FileIndexTreeModel.h" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs"</Command>
</CustomBuild>
<ClInclude Include="FileListEntry.h" />
<CustomBuild Include="FolderProxyModel.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing FolderProxyModel.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" "-fStdAfx.h" "-f../../FolderProxyModel.h" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing FolderProxyModel.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" "-fStdAfx.h" "-f../../FolderProxyModel.h" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs"</Command>
</CustomBuild>
<CustomBuild Include="FileProxyModel.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing FileProxyModel.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" "-fStdAfx.h" "-f../../FileProxyModel.h" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing FileProxyModel.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" "-fStdAfx.h" "-f../../FileProxyModel.h" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs"</Command>
</CustomBuild>
<ClInclude Include="GeneratedFiles\ui_backup_chooseFileDialog.h" />
<ClInclude Include="GeneratedFiles\ui_chooseFileDialog.h" />
<ClInclude Include="GeneratedFiles\ui_chooseFileDialog_AddFile.h" />
<ClInclude Include="GeneratedFiles\ui_chooseFileDialog_DeleteFile.h" />
<ClInclude Include="GeneratedFiles\ui_chooseFileDialog_EditFile.h" />
<ClInclude Include="GeneratedFiles\ui_clientoverlay.h" />
<ClInclude Include="GeneratedFiles\ui_fileDialog.h" />
<ClInclude Include="GeneratedFiles\ui_market2.h" />
<ClInclude Include="GeneratedFiles\ui_ScriptEditor.h" />
<ClInclude Include="GeneratedFiles\ui_TradeExportUI.h" />
<ClInclude Include="HealerRuleCooldownList.h" />
<CustomBuild Include="HUD.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing HUD.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../HUD.h"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing HUD.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../HUD.h"</Command>
</CustomBuild>
<CustomBuild Include="ScriptEditorUI.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing ScriptEditorUI.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../ScriptEditorUI.h"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing ScriptEditorUI.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../ScriptEditorUI.h"</Command>
</CustomBuild>
<CustomBuild Include="OverlayUI.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing OverlayUI.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../OverlayUI.h"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing OverlayUI.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../OverlayUI.h"</Command>
</CustomBuild>
<ClInclude Include="HudDockAnchor.h" />
<CustomBuild Include="HudWidget.h">
<AdditionalInputs Condition="'(Platform)'=='Debug|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing HudWidget.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Debug|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -D_HAS_ITERATOR_DEBUGGING=1 -D_ITERATOR_DEBUG_LEVEL=2 "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../HudWidget.h"</Command>
<AdditionalInputs Condition="'(Platform)'=='Release|Win32'">(QTDIR)\\bin\\moc.exe;%(FullPath)Moc%27ing HudWidget.h... .\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'(Platform)'=='Release|Win32'">"(QTDIR)\\bin\\moc.exe" "%(FullPath)" -o ".\\GeneratedFiles\\(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB "-I.\GeneratedFiles" "-I." "-I(QTDIR)\\include" "-I.\\GeneratedFiles\\(ConfigurationName)\." "-I(QTDIR)\\include\\QtCore" "-I(QTDIR)\include\QtGui" "-I(QTDIR)\\include\\QtNetwork" "-I(QTDIR)\include\QtXml" "-IC:\Users\myName\Documents\libs" "-fStdAfx.h" "-f../../HudWidget.h"</Command>
</CustomBuild>
<ClInclude Include="HudWidgetObjectAbstract.h" />
<ClInclude Include="HudWidgetObjectRect.h" />
<ClInclude Include="HudWidgetObjectText.h" />
<ClInclude Include="LuaFunct
-
Wenn Du es nachvollziehen kannst und Du zufällig eine MSDN-Abo hast, kannst Du auch ganz einfach den MS Support kontaktieren... um was für ein OS handelt es sich denn? Windows 7?
-
Es wird wohl ein völlig anderer Programmteil für den Fehler verantwortlich sein, wenn es in der Sample-Anwendung nicht auftritt.
-
Nein, ich habe leider kein MSDN Abo
Ich vermute auch, dass es an eineme anderem Programmteil liegt. Die Frage ist jedoch, welchem genau
Ich nutze andernorts Winsock2, das wäre noch der Teil wo ich am meisten verständnis für hätte wenn es irgendwie dadran liegt.
Die Headerflags sind doch sehr begrenzt in meinem Code, aber ich kann nicht ausschließen das pthread und co irgendwas an flags setzen mit dennen WMI nicht so gut klar kommt.
-
Der Wettbewerb ist damit beendet.
Ich konnte zwar den Grund nicht herausfinden und fixen, dafür habe ich es geschafft die Access Violation abzufangen und ein simples Looping Retry implementiert. Ich weiß, dass ich nicht schön - aber es funktioniert!
-
lol
-
Man kann nur hoffen das er niemals beruflich programmiert. Sowas geht mal gar nicht.
-
echt mal jetzt
-
Kenner der Frickler schrieb:
Man kann nur hoffen das er niemals beruflich programmiert. Sowas geht mal gar nicht.
Ich weiß nicht... Ich würd dir echt gern Recht geben, und in dem Fall stimmt es wohl auch, aber ich hab schon öfter Fälle in realen Projekten gesehen, wo man gesagt hat, ok, jetzt funktionierts, aber keine Ahnung, warum.
-
jah1993 schrieb:
Der Wettbewerb ist damit beendet.
Ich konnte zwar den Grund nicht herausfinden und fixen, dafür habe ich es geschafft die Access Violation abzufangen und ein simples Looping Retry implementiert. Ich weiß, dass ich nicht schön - aber es funktioniert!
Unfassbar...
-
Was solls, er programmiert wahrscheinlich nur die Kraftstoffsteuerung für einen Airbus oder so...
da stört sich doch kein Feingeist dran.
Dass die Exception irgendwelchen andern Speicher rein zufällig auch verändern könnte, ist ja auch egal... und wen stört es schon wenn ein Programm abstürzt... Man ist doch daran gewöhnt das Microsoft Programme nur Scheiße sind dank solcher Programmierer...
-
Ihr seit also der Meinung, es ist sinnvoller weitere xxx Stunden (und es werden nicht wenige sein) in einen Fehler zu stecken, der rein 0 produktiven Wert erbringt ihn sauber zu fixxen, wenn es auch so geht ?
Als Techniker gebe ich euch recht, aber als praktiker der einfach das Projekt weiter bringen muss war die Entscheidung einfach.
Macht es doch besser, und fixt solche Fehler wenn ihr meint. Dann beschwert euch aber nicht, dass die Projekte 5x länger dauern als geplant/Budget da ist.
Ich steh zu dieser Lösung.
-
jah1993 schrieb:
Ich steh zu dieser Lösung.
Stehst du auch zu deinem Eingeständnis???
jah1993 schrieb:
Ich weiß, dass ich nicht schön
-
klar steh ich dazu. Meinst du das wurmt mich nicht das ich den Fehler nicht auf die ordentliche Art habe lösen können?
Aber zum Schluss war der besagte connect code noch vor allem eigenem threading zeugs es wurde klar das es sich um eine libary inkompitiblität oder konfigurationsgeschichte handelte. Ich kann aber auch nciht ewig an der config rummachen weil dann wiederum anderen libary's zu bruch gehen.
Also musste ich mich gegen meine innere Überzeugung für die wirtschaftliche Lösung entscheiden. Wie gesagt, ihr könnt es besser machen. Es handelt sich um Consumer Software, da stirbt niemand an einer dirty solution.
-
Ich möchte deine software nicht kaufen... wer weiss was noch alles in deinem Riesen Bug drinsteckt.
-
Deine String Konvertierung sieht echt übel aus.
// Convert output to std::string std::wstring outputW(vtProp.bstrVal, SysStringLen(vtProp.bstrVal)); std::string output(outputW.begin(), outputW.end());
Nutze mal WideCharToMultiByte() oder ähnliches...
Aber zum Schluss war der besagte connect code noch vor allem eigenem threading zeugs es wurde klar das es sich um eine libary inkompitiblität oder konfigurationsgeschichte handelte. Ich kann aber auch nciht ewig an der config rummachen weil dann wiederum anderen libary's zu bruch gehen.
Also musste ich mich gegen meine innere Überzeugung für die wirtschaftliche Lösung entscheiden. Wie gesagt, ihr könnt es besser machen. Es handelt sich um Consumer Software, da stirbt niemand an einer dirty solution.
Die Konsequenz hieraus ist fatal. Ich bin kein Freund mehr von Hacks, da diese oftmals nur unter sehr gewissen Bedinugenen funktionieren, sofern sie nicht undefiniertes Verhalten nutzen. Und da dann diese Hacks eine zeitlang gut gehen, bekommst du Vertrauen in solchen Lösungen. Doch dummerweise schlagen diese Fehler irgentwann zu (anderes Betriebssystem, Rechte, PC, Mondstand,...).
Beim Bug-Fixing ist man doch ein wenig im digitalen Blutrausch. Man jagt den Fehler solang bis man ihn erlegt hat. Und wenn sich dieser immer noch versteckt dann wirft man diverse Mitteln an (Debugger, Application Verifier, Flault-Injection) an.
Ich fürchte, da must du auch mal durch...
-
Ein weniger schlimmer Workaround wäre den problematischen Code in ein eigenes Utility auszulagern, evtl. gleich ein VB-Skript das man dann über WScript.exe rausstartet.
Bzw. wenn man es selbst macht, dann kann man in dem Prozess ruhig die Access-Violation fangen und statt grossartig Fehlermeldung anzeigen einfach ein ExitProcess(1) machen.
Ist natürlich immer noch nicht sauber, denn durch irgendwas muss der Fehler ja getriggert werden, d.h. es gibt irgendwo nen mehr oder weniger schlimmen Bug in der Applikation. Denn wenn IWbemLocator::ConnectServer grundsätzlich ein Problem machen würde, dann würden hunderte Programme nimmer funktionieren -- das würde man schnell merken.