Einzelnen Beitrag anzeigen

Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#2

AW: Paradoxes verhalten beim Aufruf einer C++ DLL aus Delphi

  Alt 4. Nov 2010, 11:55
Erstmal:
Code:
int const i = inIDocCount; // konstant deklarieren
Guck mal ob das was ändert. Sollte zwar nicht, aber ist ohnehin die bessere Vorgehensweise.

Ansonsten sehe ich, daß die DLL eine .NET-Assembly ist. Hmm. Aber sollte nix ausmachen. Aber dennoch, warum? Der Code ist doch reines C++, warum als managed Kompilieren? Wo ist da der Vorteil für dich?

Und vor allem ist für mich nicht ersichtlich wo das passieren woll, was du sagst:

Code:
  .method assembly static modopt([mscorlib]System.Runtime.CompilerServices.CallConvCdecl) int32 AssignDocuments(modopt([mscorlib]System.Runtime.CompilerServices.IsConst) modopt([mscorlib]System.Runtime.CompilerServices.IsConst) modopt([mscorlib]System.Runtime.CompilerServices.IsSignUnspecifiedByte) int8** inArrFilenames, int32 inIDocCount)
  {
    .maxstack 4
    .locals (valuetype <CppImplementationDetails>.$ArrayType$$$BY0GE@_W V0,
             valuetype <CppImplementationDetails>.$ArrayType$$$BY0GE@_W V1)
    ldloca.s 1
    ldsflda modopt([mscorlib]System.Runtime.CompilerServices.IsConst) valuetype <CppImplementationDetails>.$ArrayType$$$BY0BB@$$CB_W ??_C@_1CC@JEIJDBMP@?$AAi?$AAn?$AAI?$AAD?$AAo?$AAc?$AAC?$AAo?$AAu?$AAn?$AAt?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?$AA@
    ldarg.1
    call modopt([mscorlib]System.Runtime.CompilerServices.CallConvCdecl) int32 _swprintf(char*, modopt([mscorlib]System.Runtime.CompilerServices.IsConst) char*, int32)
    pop
    ldloca.s 0
    ldsflda modopt([mscorlib]System.Runtime.CompilerServices.IsConst) valuetype <CppImplementationDetails>.$ArrayType$$$BY0O@$$CB_W ??_C@_1BM@LPOBPDGL@?$AAi?$AA?5?$AAi?$AAn?$AA?5?$AAC?$AA?$CL?$AA?$CL?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?$AA@
    ldarg.1
    call modopt([mscorlib]System.Runtime.CompilerServices.CallConvCdecl) int32 _swprintf(char*, modopt([mscorlib]System.Runtime.CompilerServices.IsConst) char*, int32)
    pop
    ldc.i4.0
    ldloca.s 1
    ldloca.s 0
    ldc.i4.0
    call T0x6000055
    pop
    ldarg.1
    ret
  }
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat