Einzelnen Beitrag anzeigen

ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#1

TaskDialogIndirect in einer 64bit Anwendung

  Alt 31. Dez 2013, 18:48
Hallo,

ich habe mir heute mal die TaskDialogIndirect-Demo von Luckie (http://www.michael-puff.de/Programmi...skDialog.shtml) angesehen und diese als Win32- und Win64-Version kompiliert. Die Win32-Version funktioniert offenbar problemlos.

Auch die Win64-Version scheint auf den ersten Blick zu funktionieren. Allerdings tritt hier das Phänomen auf, das nur der Aufruf der einfachen TaskDialog-Funktion funktioniert. Klickt man danach jedoch auf den Button "Ja" um weiter zur Demo der TaskDialogIndirect-Funktion zu gelangen passiert nichts mehr. Keine Fehlermeldung, keine Exception, nichts. Es scheint so als ob der Aufruf der Funktion aus der "comctl32.dll" fehlschlägt. Mehr konnte ich selber leider noch nicht rausfinden.

Scheinbar ist das Problem im Internet nicht unbekannt, jedoch führt der Vorschlag das Manifest anzupassen, nicht zum Erfolg. Ich habe es mit verschiedenen Manifesten und Einstellungen probiert, unter anderem mit diesem hier:
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
  version="1.9.0.0"
  processorArchitecture="*"
  name="Win32-API-Tutorials.Win32-API-Tutorials.Sample Code"
  type="win32"/>
<description>Sample Code</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
    </application>
  </compatibility>
<dependency>
    <dependentAssembly>
        <assemblyIdentity type="win32"
          name="Microsoft.Windows.Common-Controls"
          version="6.0.0.0"
          processorArchitecture="*"
          publicKeyToken="6595b64144ccf1df"
          language="*" />
    </dependentAssembly>
</dependency>
</assembly>
Ist einem von Euch dieses Problem schon begegnet und konnte es irgendwie lösen? Wie gesagt, die Win32-Version funktioniert problemlos, nur die Win64-Version zickt rum. Daher schliesse ich erstmal einen Fehler in der Demo aus.

Achso, getestet habe ich bei einem Bekannten unter Delphi XE4 Pro da ich selber keine 64bit-Version zur Verfügung habe.
  Mit Zitat antworten Zitat