ich bin neu hier im Forum, lese aber schon eine Weile fleissig mit.
Als WorldOfTanks Spieler hab ich mich oft gefragt, ob das Sichtsystem wirklich auf dem Server berechnet wird.
Mit einem Kollegen hab ich da lange drüber philosophiert und wir sind der Meinung, dass der Server zwar die Information, ob ein Panzer sichtbar ist oder nicht, liefert, es am Client aber erst ausgewertet wird.
In diesem Zuge hab ich die Funktionen der umbraob32.dll exportiert um mir eine Proxy DLL dazu zu schreiben.
Verwendet habe ich den Dev-C++ Compiler.
Source:
Code:
#include <windows.h> #pragma pack(1) HINSTANCE hLThis = 0; HINSTANCE hL = 0; FARPROC p[79] = {0}; int pint0, pint1, pint2, pint3, pint4, pint5, pint6, pint7, pint8, pint9, pint10; int pint11, pint12, pint13, pint14, pint15, pint16, pint17, pint18, pint19, pint20; int pint21, pint22, pint23, pint24, pint25, pint26, pint27, pint28, pint29, pint30; int pint31, pint32, pint33, pint34, pint35, pint36, pint37, pint38, pint39, pint40; int pint41, pint42, pint43, pint44, pint45, pint46, pint47, pint48, pint49, pint50; int pint51, pint52, pint53, pint54, pint55, pint56, pint57, pint58, pint59, pint60; int pint61, pint62, pint63, pint64, pint65, pint66, pint67, pint68, pint69, pint70; int pint71, pint72, pint73, pint74, pint75, pint76, pint77, pint78; BOOL WINAPI DllMain(HINSTANCE hInst,DWORD reason,LPVOID) { if (reason == DLL_PROCESS_ATTACH) { hLThis = hInst; hL = LoadLibrary("umbraob32_.dll"); if (!hL) return false; p[0] = GetProcAddress(hL,"??0Commander@OB@Umbra@@IAE@PAVGraphicsServices@LibraryDefs@12@@Z"); p[1] = GetProcAddress(hL,"??0GraphicsServices@LibraryDefs@OB@Umbra@@QAE@XZ"); p[2] = GetProcAddress(hL,"??0SystemServices@LibraryDefs@OB@Umbra@@QAE@XZ"); p[3] = GetProcAddress(hL,"??1Camera@OB@Umbra@@MAE@XZ"); p[4] = GetProcAddress(hL,"??1Commander@OB@Umbra@@UAE@XZ"); p[5] = GetProcAddress(hL,"??1GraphicsServices@LibraryDefs@OB@Umbra@@UAE@XZ"); p[6] = GetProcAddress(hL,"??1SystemServices@LibraryDefs@OB@Umbra@@UAE@XZ"); p[7] = GetProcAddress(hL,"?addReference@ReferenceCount@OB@Umbra@@QAEXXZ"); p[8] = GetProcAddress(hL,"?allocateMemory@SystemServices@LibraryDefs@OB@Umbra@@UAEPAXI@Z"); p[9] = GetProcAddress(hL,"?allocateQueryObject@GraphicsServices@LibraryDefs@OB@Umbra@@UAEPAXXZ"); p[10] = GetProcAddress(hL,"?beginNamedEvent@SystemServices@LibraryDefs@OB@Umbra@@UAEXHPBD@Z"); p[11] = GetProcAddress(hL,"?clearFlags@Library@OB@Umbra@@SAXW4FlagType@LibraryDefs@23@I@Z"); p[12] = GetProcAddress(hL,"?create@Camera@OB@Umbra@@SAPAV123@XZ"); p[13] = GetProcAddress(hL,"?create@Cell@OB@Umbra@@SAPAV123@XZ"); p[14] = GetProcAddress(hL,"?create@OBBModel@OB@Umbra@@SAPAV123@ABVMatrix4x4@3@@Z"); p[15] = GetProcAddress(hL,"?create@OBBModel@OB@Umbra@@SAPAV123@ABVVector3@3@0@Z"); p[16] = GetProcAddress(hL,"?create@OBBModel@OB@Umbra@@SAPAV123@PBVVector3@3@H@Z"); p[17] = GetProcAddress(hL,"?create@Object@OB@Umbra@@SAPAV123@PAVModel@23@@Z"); p[18] = GetProcAddress(hL,"?endNamedEvent@SystemServices@LibraryDefs@OB@Umbra@@UAEXH@Z"); p[19] = GetProcAddress(hL,"?error@SystemServices@LibraryDefs@OB@Umbra@@UAEXPBD@Z"); p[20] = GetProcAddress(hL,"?exit@Library@OB@Umbra@@SAXXZ"); p[21] = GetProcAddress(hL,"?getCameraToWorldMatrix@Viewer@Commander@OB@Umbra@@QBEXAAVMatrix4x4@4@@Z"); p[22] = GetProcAddress(hL,"?getCellToCameraMatrix@Viewer@Commander@OB@Umbra@@QBEXAAVMatrix4x4@4@@Z"); p[23] = GetProcAddress(hL,"?getDataCount@Commander@OB@Umbra@@IBEHXZ"); p[24] = GetProcAddress(hL,"?getEventCount@Library@OB@Umbra@@SAHXZ"); p[25] = GetProcAddress(hL,"?getFlags@Library@OB@Umbra@@SAIW4FlagType@LibraryDefs@23@@Z"); p[26] = GetProcAddress(hL,"?getFrustum@Viewer@Commander@OB@Umbra@@QBEXAAUFrustum@4@@Z"); p[27] = GetProcAddress(hL,"?getInfoString@Library@OB@Umbra@@SAPBDW4InfoString@LibraryDefs@23@@Z"); p[28] = GetProcAddress(hL,"?getLine2D@Commander@OB@Umbra@@IBE?AW4LineType@LibraryDefs@23@AAVVector2@3@0AAVVector4@3@@Z"); p[29] = GetProcAddress(hL,"?getLine3D@Commander@OB@Umbra@@IBE?AW4LineType@LibraryDefs@23@AAVVector3@3@0AAVVector4@3@@Z"); p[30] = GetProcAddress(hL,"?getObjectData@Commander@OB@Umbra@@IBEPBVObjectData@123@H@Z"); p[31] = GetProcAddress(hL,"?getOcclusionQueryData@Commander@OB@Umbra@@IBEPBVOcclusionQueryData@123@H@Z"); p[32] = GetProcAddress(hL,"?getOcclusionQueryResultData@Commander@OB@Umbra@@IBEPAVOcclusionQueryResultData@123@H@Z"); p[33] = GetProcAddress(hL,"?getProjectionMatrix@Viewer@Commander@OB@Umbra@@QBEXAAVMatrix4x4@4@W4Handedness@1234@@Z"); p[34] = GetProcAddress(hL,"?getQueryObject@OcclusionQueryData@Commander@OB@Umbra@@QBEPAXXZ"); p[35] = GetProcAddress(hL,"?getQueryObject@OcclusionQueryResultData@Commander@OB@Umbra@@QBEPAXXZ"); p[36] = GetProcAddress(hL,"?getStatistic@Library@OB@Umbra@@SAMW4Statistic@LibraryDefs@23@@Z"); p[37] = GetProcAddress(hL,"?getStatisticName@Library@OB@Umbra@@SAPBDW4Statistic@LibraryDefs@23@@Z"); p[38] = GetProcAddress(hL,"?getTextMessage@Commander@OB@Umbra@@IBEPBDXZ"); p[39] = GetProcAddress(hL,"?getTileMask@ObjectData@Commander@OB@Umbra@@QBEIXZ"); p[40] = GetProcAddress(hL,"?getTriangleCount@OcclusionQueryData@Commander@OB@Umbra@@QBEIXZ"); p[41] = GetProcAddress(hL,"?getTriangles@OcclusionQueryData@Commander@OB@Umbra@@QBEPBVVector3i@4@XZ"); p[42] = GetProcAddress(hL,"?getUserPointer@ObjectData@Commander@OB@Umbra@@QBEPAXXZ"); p[43] = GetProcAddress(hL,"?getVertexCount@OcclusionQueryData@Commander@OB@Umbra@@QBEIXZ"); p[44] = GetProcAddress(hL,"?getVertices@OcclusionQueryData@Commander@OB@Umbra@@QBEPBVVector3@4@XZ"); p[45] = GetProcAddress(hL,"?getViewer@Commander@OB@Umbra@@IBEPBVViewer@123@XZ"); p[46] = GetProcAddress(hL,"?getWaitForResult@OcclusionQueryResultData@Commander@OB@Umbra@@QBE_NXZ"); p[47] = GetProcAddress(hL,"?init@Library@OB@Umbra@@SAXW4MatrixFormat@LibraryDefs@23@PAVSystemServices@523@@Z"); p[48] = GetProcAddress(hL,"?initThreads@Library@OB@Umbra@@SAXPAXHPAHH@Z"); p[49] = GetProcAddress(hL,"?isOccluder@ObjectData@Commander@OB@Umbra@@QBE_NXZ"); p[50] = GetProcAddress(hL,"?namedCounter@SystemServices@LibraryDefs@OB@Umbra@@UAEXMPAD@Z"); p[51] = GetProcAddress(hL,"?processVisibility@Camera@OB@Umbra@@QAEXPAVCommander@23@@Z"); p[52] = GetProcAddress(hL,"?release@ReferenceCount@OB@Umbra@@QBEXXZ"); p[53] = GetProcAddress(hL,"?releaseMemory@SystemServices@LibraryDefs@OB@Umbra@@UAEXPAX@Z"); p[54] = GetProcAddress(hL,"?releaseQueryObject@GraphicsServices@LibraryDefs@OB@Umbra@@UAEXPAX@Z"); p[55] = GetProcAddress(hL,"?resetStatistics@Library@OB@Umbra@@SAXXZ"); p[56] = GetProcAddress(hL,"?resolveVisibility@Camera@OB@Umbra@@QBEXXZ"); p[57] = GetProcAddress(hL,"?set@Object@OB@Umbra@@QAEXW4Property@123@_N@Z"); p[58] = GetProcAddress(hL,"?setBitmask@Camera@OB@Umbra@@QAEXI@Z"); p[59] = GetProcAddress(hL,"?setBitmask@Object@OB@Umbra@@QAEXI@Z"); p[60] = GetProcAddress(hL,"?setCameraToCellMatrix@Camera@OB@Umbra@@QAEXABVMatrix4x4@3@@Z"); p[61] = GetProcAddress(hL,"?setCell@Camera@OB@Umbra@@QAEXPAVCell@23@@Z"); p[62] = GetProcAddress(hL,"?setCell@Object@OB@Umbra@@QAEXPAVCell@23@@Z"); p[63] = GetProcAddress(hL,"?setCullDistance@Object@OB@Umbra@@QAEXMM@Z"); p[64] = GetProcAddress(hL,"?setCullPlanes@Camera@OB@Umbra@@QAEXPBVVector4@3@HW4Space@123@@Z"); p[65] = GetProcAddress(hL,"?setEvaluationKey@Library@OB@Umbra@@SAXPBD@Z"); p[66] = GetProcAddress(hL,"?setFlags@Library@OB@Umbra@@SAXW4FlagType@LibraryDefs@23@I@Z"); p[67] = GetProcAddress(hL,"?setFrustum@Camera@OB@Umbra@@QAEXABUFrustum@3@@Z"); p[68] = GetProcAddress(hL,"?setFrustumAndCullPlanes@Camera@OB@Umbra@@QAEXABUFrustum@3@PBVVector4@3@HW4Space@123@@Z"); p[69] = GetProcAddress(hL,"?setModel@Object@OB@Umbra@@QAEXPAVModel@23@@Z"); p[70] = GetProcAddress(hL,"?setObjectToCellMatrix@Object@OB@Umbra@@QAEXABVMatrix4x4@3@@Z"); p[71] = GetProcAddress(hL,"?setProperties@Camera@OB@Umbra@@QAEXI@Z"); p[72] = GetProcAddress(hL,"?setRenderCost@Object@OB@Umbra@@QAEXW4RenderCost@123@@Z"); p[73] = GetProcAddress(hL,"?setResult@OcclusionQueryResultData@Commander@OB@Umbra@@QAEX_J@Z"); p[74] = GetProcAddress(hL,"?setTilingScenario@Camera@OB@Umbra@@QAEXPBUTile@23@H@Z"); p[75] = GetProcAddress(hL,"?setTome@Cell@OB@Umbra@@QAEXPBVTome@3@@Z"); p[76] = GetProcAddress(hL,"?setTomeID@Object@OB@Umbra@@QAEXI@Z"); p[77] = GetProcAddress(hL,"?setUserPointer@ReferenceCount@OB@Umbra@@QAEXPAX@Z"); p[78] = GetProcAddress(hL,"?textCommand@Library@OB@Umbra@@SAHPAVCommander@23@PBD@Z"); } if (reason == DLL_PROCESS_DETACH) { FreeLibrary(hL); } return 1; } // ??0Commander@OB@Umbra@@IAE@PAVGraphicsServices@LibraryDefs@12@@Z extern "C" __declspec(naked) void __stdcall __E__0__() { pint0 = (int)p[0*4]; __asm__ ("jmp _pint0"); } // ??0GraphicsServices@LibraryDefs@OB@Umbra@@QAE@XZ extern "C" __declspec(naked) void __stdcall __E__1__() { pint1 = (int)p[1*4]; __asm__ ("jmp _pint1"); } // ??0SystemServices@LibraryDefs@OB@Umbra@@QAE@XZ extern "C" __declspec(naked) void __stdcall __E__2__() { pint2 = (int)p[2*4]; __asm__ ("jmp _pint2"); } // ??1Camera@OB@Umbra@@MAE@XZ extern "C" __declspec(naked) void __stdcall __E__3__() { pint3 = (int)p[3*4]; __asm__ ("jmp _pint3"); } // ??1Commander@OB@Umbra@@UAE@XZ extern "C" __declspec(naked) void __stdcall __E__4__() { pint4 = (int)p[4*4]; __asm__ ("jmp _pint4"); } // ??1GraphicsServices@LibraryDefs@OB@Umbra@@UAE@XZ extern "C" __declspec(naked) void __stdcall __E__5__() { pint5 = (int)p[5*4]; __asm__ ("jmp _pint5"); } // ??1SystemServices@LibraryDefs@OB@Umbra@@UAE@XZ extern "C" __declspec(naked) void __stdcall __E__6__() { pint6 = (int)p[6*4]; __asm__ ("jmp _pint6"); } // ?addReference@ReferenceCount@OB@Umbra@@QAEXXZ extern "C" __declspec(naked) void __stdcall __E__7__() { pint7 = (int)p[7*4]; __asm__ ("jmp _pint7"); } // ?allocateMemory@SystemServices@LibraryDefs@OB@Umbra@@UAEPAXI@Z extern "C" __declspec(naked) void __stdcall __E__8__() { pint8 = (int)p[8*4]; __asm__ ("jmp _pint8"); } // ?allocateQueryObject@GraphicsServices@LibraryDefs@OB@Umbra@@UAEPAXXZ extern "C" __declspec(naked) void __stdcall __E__9__() { pint9 = (int)p[9*4]; __asm__ ("jmp _pint9"); } // ?beginNamedEvent@SystemServices@LibraryDefs@OB@Umbra@@UAEXHPBD@Z extern "C" __declspec(naked) void __stdcall __E__10__() { pint10 = (int)p[10*4]; __asm__ ("jmp _pint10"); } // ?clearFlags@Library@OB@Umbra@@SAXW4FlagType@LibraryDefs@23@I@Z extern "C" __declspec(naked) void __stdcall __E__11__() { pint11 = (int)p[11*4]; __asm__ ("jmp _pint11"); } // ?create@Camera@OB@Umbra@@SAPAV123@XZ extern "C" __declspec(naked) void __stdcall __E__12__() { pint12 = (int)p[12*4]; __asm__ ("jmp _pint12"); } // ?create@Cell@OB@Umbra@@SAPAV123@XZ extern "C" __declspec(naked) void __stdcall __E__13__() { pint13 = (int)p[13*4]; __asm__ ("jmp _pint13"); } // ?create@OBBModel@OB@Umbra@@SAPAV123@ABVMatrix4x4@3@@Z extern "C" __declspec(naked) void __stdcall __E__14__() { pint14 = (int)p[0*4]; __asm__ ("jmp _pint14"); } // ?create@OBBModel@OB@Umbra@@SAPAV123@ABVVector3@3@0@Z extern "C" __declspec(naked) void __stdcall __E__15__() { pint15 = (int)p[15*4]; __asm__ ("jmp _pint15"); } // ?create@OBBModel@OB@Umbra@@SAPAV123@PBVVector3@3@H@Z extern "C" __declspec(naked) void __stdcall __E__16__() { pint16 = (int)p[16*4]; __asm__ ("jmp _pint16"); } // ?create@Object@OB@Umbra@@SAPAV123@PAVModel@23@@Z extern "C" __declspec(naked) void __stdcall __E__17__() { pint17 = (int)p[17*4]; __asm__ ("jmp _pint17"); } // ?endNamedEvent@SystemServices@LibraryDefs@OB@Umbra@@UAEXH@Z extern "C" __declspec(naked) void __stdcall __E__18__() { pint18 = (int)p[18*4]; __asm__ ("jmp _pint18"); } // ?error@SystemServices@LibraryDefs@OB@Umbra@@UAEXPBD@Z extern "C" __declspec(naked) void __stdcall __E__19__() { pint19 = (int)p[19*4]; __asm__ ("jmp _pint19"); } // ?exit@Library@OB@Umbra@@SAXXZ extern "C" __declspec(naked) void __stdcall __E__20__() { pint20 = (int)p[20*4]; __asm__ ("jmp _pint20"); } // ?getCameraToWorldMatrix@Viewer@Commander@OB@Umbra@@QBEXAAVMatrix4x4@4@@Z extern "C" __declspec(naked) void __stdcall __E__21__() { pint21 = (int)p[21*4]; __asm__ ("jmp _pint21"); } // ?getCellToCameraMatrix@Viewer@Commander@OB@Umbra@@QBEXAAVMatrix4x4@4@@Z extern "C" __declspec(naked) void __stdcall __E__22__() { pint22 = (int)p[22*4]; __asm__ ("jmp _pint22"); } // ?getDataCount@Commander@OB@Umbra@@IBEHXZ extern "C" __declspec(naked) void __stdcall __E__23__() { pint23 = (int)p[23*4]; __asm__ ("jmp _pint23"); } // ?getEventCount@Library@OB@Umbra@@SAHXZ extern "C" __declspec(naked) void __stdcall __E__24__() { pint24 = (int)p[24*4]; __asm__ ("jmp _pint24"); } // ?getFlags@Library@OB@Umbra@@SAIW4FlagType@LibraryDefs@23@@Z extern "C" __declspec(naked) void __stdcall __E__25__() { pint25 = (int)p[0*4]; __asm__ ("jmp _pint25"); } // ?getFrustum@Viewer@Commander@OB@Umbra@@QBEXAAUFrustum@4@@Z extern "C" __declspec(naked) void __stdcall __E__26__() { pint26 = (int)p[26*4]; __asm__ ("jmp _pint26"); } // ?getInfoString@Library@OB@Umbra@@SAPBDW4InfoString@LibraryDefs@23@@Z extern "C" __declspec(naked) void __stdcall __E__27__() { pint27 = (int)p[27*4]; __asm__ ("jmp _pint27"); } // ?getLine2D@Commander@OB@Umbra@@IBE?AW4LineType@LibraryDefs@23@AAVVector2@3@0AAVVector4@3@@Z extern "C" __declspec(naked) void __stdcall __E__28__() { pint28 = (int)p[28*4]; __asm__ ("jmp _pint28"); } // ?getLine3D@Commander@OB@Umbra@@IBE?AW4LineType@LibraryDefs@23@AAVVector3@3@0AAVVector4@3@@Z extern "C" __declspec(naked) void __stdcall __E__29__() { pint29 = (int)p[29*4]; __asm__ ("jmp _pint29"); } // ?getObjectData@Commander@OB@Umbra@@IBEPBVObjectData@123@H@Z extern "C" __declspec(naked) void __stdcall __E__30__() { pint30 = (int)p[30*4]; __asm__ ("jmp _pint30"); } // ?getOcclusionQueryData@Commander@OB@Umbra@@IBEPBVOcclusionQueryData@123@H@Z extern "C" __declspec(naked) void __stdcall __E__31__() { pint31 = (int)p[31*4]; __asm__ ("jmp _pint31"); } // ?getOcclusionQueryResultData@Commander@OB@Umbra@@IBEPAVOcclusionQueryResultData@123@H@Z extern "C" __declspec(naked) void __stdcall __E__32__() { pint32 = (int)p[32*4]; __asm__ ("jmp _pint32"); } // ?getProjectionMatrix@Viewer@Commander@OB@Umbra@@QBEXAAVMatrix4x4@4@W4Handedness@1234@@Z extern "C" __declspec(naked) void __stdcall __E__33__() { pint33 = (int)p[33*4]; __asm__ ("jmp _pint33"); } // ?getQueryObject@OcclusionQueryData@Commander@OB@Umbra@@QBEPAXXZ extern "C" __declspec(naked) void __stdcall __E__34__() { pint34 = (int)p[34*4]; __asm__ ("jmp _pint34"); } // ?getQueryObject@OcclusionQueryResultData@Commander@OB@Umbra@@QBEPAXXZ extern "C" __declspec(naked) void __stdcall __E__35__() { pint35 = (int)p[35*4]; __asm__ ("jmp _pint35"); } // ?getStatistic@Library@OB@Umbra@@SAMW4Statistic@LibraryDefs@23@@Z extern "C" __declspec(naked) void __stdcall __E__36__() { pint36 = (int)p[36*4]; __asm__ ("jmp _pint36"); } // ?getStatisticName@Library@OB@Umbra@@SAPBDW4Statistic@LibraryDefs@23@@Z extern "C" __declspec(naked) void __stdcall __E__37__() { pint37 = (int)p[37*4]; __asm__ ("jmp _pint37"); } // ?getTextMessage@Commander@OB@Umbra@@IBEPBDXZ extern "C" __declspec(naked) void __stdcall __E__38__() { pint38 = (int)p[38*4]; __asm__ ("jmp _pint38"); } // ?getTileMask@ObjectData@Commander@OB@Umbra@@QBEIXZ extern "C" __declspec(naked) void __stdcall __E__39__() { pint39 = (int)p[39*4]; __asm__ ("jmp _pint39"); } // ?getTriangleCount@OcclusionQueryData@Commander@OB@Umbra@@QBEIXZ extern "C" __declspec(naked) void __stdcall __E__40__() { pint40 = (int)p[40*4]; __asm__ ("jmp _pint40"); } // ?getTriangles@OcclusionQueryData@Commander@OB@Umbra@@QBEPBVVector3i@4@XZ extern "C" __declspec(naked) void __stdcall __E__41__() { pint41 = (int)p[41*4]; __asm__ ("jmp _pint41"); } // ?getUserPointer@ObjectData@Commander@OB@Umbra@@QBEPAXXZ extern "C" __declspec(naked) void __stdcall __E__42__() { pint42 = (int)p[42*4]; __asm__ ("jmp _pint42"); } // ?getVertexCount@OcclusionQueryData@Commander@OB@Umbra@@QBEIXZ extern "C" __declspec(naked) void __stdcall __E__43__() { pint43 = (int)p[43*4]; __asm__ ("jmp _pint43"); } // ?getVertices@OcclusionQueryData@Commander@OB@Umbra@@QBEPBVVector3@4@XZ extern "C" __declspec(naked) void __stdcall __E__44__() { pint44 = (int)p[44*4]; __asm__ ("jmp _pint44"); } // ?getViewer@Commander@OB@Umbra@@IBEPBVViewer@123@XZ extern "C" __declspec(naked) void __stdcall __E__45__() { pint45 = (int)p[45*4]; __asm__ ("jmp _pint45"); } // ?getWaitForResult@OcclusionQueryResultData@Commander@OB@Umbra@@QBE_NXZ extern "C" __declspec(naked) void __stdcall __E__46__() { pint46 = (int)p[46*4]; __asm__ ("jmp _pint46"); } // ?init@Library@OB@Umbra@@SAXW4MatrixFormat@LibraryDefs@23@PAVSystemServices@523@@Z extern "C" __declspec(naked) void __stdcall __E__47__() { pint47 = (int)p[47*4]; __asm__ ("jmp _pint47"); } // ?initThreads@Library@OB@Umbra@@SAXPAXHPAHH@Z extern "C" __declspec(naked) void __stdcall __E__48__() { pint48 = (int)p[48*4]; __asm__ ("jmp _pint48"); } // ?isOccluder@ObjectData@Commander@OB@Umbra@@QBE_NXZ extern "C" __declspec(naked) void __stdcall __E__49__() { pint49 = (int)p[49*4]; __asm__ ("jmp _pint49"); } // ?namedCounter@SystemServices@LibraryDefs@OB@Umbra@@UAEXMPAD@Z extern "C" __declspec(naked) void __stdcall __E__50__() { pint50 = (int)p[50*4]; __asm__ ("jmp _pint50"); } // ?processVisibility@Camera@OB@Umbra@@QAEXPAVCommander@23@@Z extern "C" __declspec(naked) void __stdcall __E__51__() { pint51 = (int)p[51*4]; __asm__ ("jmp _pint51"); } // ?release@ReferenceCount@OB@Umbra@@QBEXXZ extern "C" __declspec(naked) void __stdcall __E__52__() { pint52 = (int)p[52*4]; __asm__ ("jmp _pint52"); } // ?releaseMemory@SystemServices@LibraryDefs@OB@Umbra@@UAEXPAX@Z extern "C" __declspec(naked) void __stdcall __E__53__() { pint53 = (int)p[53*4]; __asm__ ("jmp _pint53"); } // ?releaseQueryObject@GraphicsServices@LibraryDefs@OB@Umbra@@UAEXPAX@Z extern "C" __declspec(naked) void __stdcall __E__54__() { pint54 = (int)p[54*4]; __asm__ ("jmp _pint54"); } // ?resetStatistics@Library@OB@Umbra@@SAXXZ extern "C" __declspec(naked) void __stdcall __E__55__() { pint55 = (int)p[55*4]; __asm__ ("jmp _pint55"); } // ?resolveVisibility@Camera@OB@Umbra@@QBEXXZ extern "C" __declspec(naked) void __stdcall __E__56__() { pint56 = (int)p[56*4]; __asm__ ("jmp _pint56"); } // ?set@Object@OB@Umbra@@QAEXW4Property@123@_N@Z extern "C" __declspec(naked) void __stdcall __E__57__() { pint57 = (int)p[57*4]; __asm__ ("jmp _pint57"); } // ?setBitmask@Camera@OB@Umbra@@QAEXI@Z extern "C" __declspec(naked) void __stdcall __E__58__() { pint58 = (int)p[58*4]; __asm__ ("jmp _pint58"); } // ?setBitmask@Object@OB@Umbra@@QAEXI@Z extern "C" __declspec(naked) void __stdcall __E__59__() { pint59 = (int)p[59*4]; __asm__ ("jmp _pint59"); } // ?setCameraToCellMatrix@Camera@OB@Umbra@@QAEXABVMatrix4x4@3@@Z extern "C" __declspec(naked) void __stdcall __E__60__() { pint60 = (int)p[60*4]; __asm__ ("jmp _pint60"); } // ?setCell@Camera@OB@Umbra@@QAEXPAVCell@23@@Z extern "C" __declspec(naked) void __stdcall __E__61__() { pint61 = (int)p[61*4]; __asm__ ("jmp _pint61"); } // ?setCell@Object@OB@Umbra@@QAEXPAVCell@23@@Z extern "C" __declspec(naked) void __stdcall __E__62__() { pint62 = (int)p[62*4]; __asm__ ("jmp _pint62"); } // ?setCullDistance@Object@OB@Umbra@@QAEXMM@Z extern "C" __declspec(naked) void __stdcall __E__63__() { pint63 = (int)p[63*4]; __asm__ ("jmp _pint63"); } // ?setCullPlanes@Camera@OB@Umbra@@QAEXPBVVector4@3@HW4Space@123@@Z extern "C" __declspec(naked) void __stdcall __E__64__() { pint64 = (int)p[64*4]; __asm__ ("jmp _pint64"); } // ?setEvaluationKey@Library@OB@Umbra@@SAXPBD@Z extern "C" __declspec(naked) void __stdcall __E__65__() { pint65 = (int)p[65*4]; __asm__ ("jmp _pint65"); } // ?setFlags@Library@OB@Umbra@@SAXW4FlagType@LibraryDefs@23@I@Z extern "C" __declspec(naked) void __stdcall __E__66__() { pint66 = (int)p[66*4]; __asm__ ("jmp _pint66"); } // ?setFrustum@Camera@OB@Umbra@@QAEXABUFrustum@3@@Z extern "C" __declspec(naked) void __stdcall __E__67__() { pint67 = (int)p[67*4]; __asm__ ("jmp _pint67"); } // ?setFrustumAndCullPlanes@Camera@OB@Umbra@@QAEXABUFrustum@3@PBVVector4@3@HW4Space@123@@Z extern "C" __declspec(naked) void __stdcall __E__68__() { pint68 = (int)p[68*4]; __asm__ ("jmp _pint68"); } // ?setModel@Object@OB@Umbra@@QAEXPAVModel@23@@Z extern "C" __declspec(naked) void __stdcall __E__69__() { pint69 = (int)p[69*4]; __asm__ ("jmp _pint69"); } // ?setObjectToCellMatrix@Object@OB@Umbra@@QAEXABVMatrix4x4@3@@Z extern "C" __declspec(naked) void __stdcall __E__70__() { pint70 = (int)p[70*4]; __asm__ ("jmp _pint70"); } // ?setProperties@Camera@OB@Umbra@@QAEXI@Z extern "C" __declspec(naked) void __stdcall __E__71__() { pint71 = (int)p[71*4]; __asm__ ("jmp _pint71"); } // ?setRenderCost@Object@OB@Umbra@@QAEXW4RenderCost@123@@Z extern "C" __declspec(naked) void __stdcall __E__72__() { pint72 = (int)p[72*4]; __asm__ ("jmp _pint72"); } // ?setResult@OcclusionQueryResultData@Commander@OB@Umbra@@QAEX_J@Z extern "C" __declspec(naked) void __stdcall __E__73__() { pint73 = (int)p[73*4]; __asm__ ("jmp _pint73"); } // ?setTilingScenario@Camera@OB@Umbra@@QAEXPBUTile@23@H@Z extern "C" __declspec(naked) void __stdcall __E__74__() { pint74 = (int)p[74*4]; __asm__ ("jmp _pint74"); } // ?setTome@Cell@OB@Umbra@@QAEXPBVTome@3@@Z extern "C" __declspec(naked) void __stdcall __E__75__() { pint75 = (int)p[75*4]; __asm__ ("jmp _pint75"); } // ?setTomeID@Object@OB@Umbra@@QAEXI@Z extern "C" __declspec(naked) void __stdcall __E__76__() { pint76 = (int)p[76*4]; __asm__ ("jmp _pint76"); } // ?setUserPointer@ReferenceCount@OB@Umbra@@QAEXPAX@Z extern "C" __declspec(naked) void __stdcall __E__77__() { pint77 = (int)p[77*4]; __asm__ ("jmp _pint77"); } // ?textCommand@Library@OB@Umbra@@SAHPAVCommander@23@PBD@Z extern "C" __declspec(naked) void __stdcall __E__78__() { pint78 = (int)p[78*4]; __asm__ ("jmp _pint78"); }
"Fehler bei Initialisierung 0xc000007b"
Hat vielleicht jemand einen Tipp woran es liegen kann?
Falls noch weitere Infos zu den Funktionen aus der DLL nötig, kann ich die posten.(zumindest das was der Disassembler hergibt)
Falls ich im falschen Forum gepostet habe, dann seht es mir bitte nach.
Gruß
Hanse
Edit:
Ok, hab vergessen beim Kompilieren das DEF File mit anzugeben.
WOT Fenster öffnet sich schonmal kurz, wird dann aber wieder geschlossen.......mal schauen.