2009-11-17 2 views
3

J'ai une application 32 bits héritée écrite dans C++ Builder de Borland. J'ai besoin d'afficher des pages spécifiques à partir d'un fichier HtmlHelp par programme. Jusqu'à présent, je l'ai fait via HtmlHelp.ocx, mais cela ne fonctionne pas sur les versions x64 de Windows Vista/Windows7 comme décrit dans this thread.Le moyen le plus simple d'ouvrir les fichiers chm par programme?

Je ne peux pas compiler l'application en tant qu'exécutable 64 bits. Par conséquent, la seule solution de contournement que j'ai trouvée jusqu'à présent consiste à créer un composant 32 bits implémentant un objet COM qui charge et appelle dans la DLL 32 bits et expose l'interface DLL 32 bits en tant qu'interface COM.

Cela semble beaucoup trop compliqué simplement pour afficher un fichier chml avec un sujet spécifique. Il doit y avoir autre chose. Mais qu'est-ce que c'est? Est-ce pas possible via l'API htmlhelp?

Répondre

1

(Htmlhelp.h dans le MS sdk?)

Plus précisément la fonction htmlhelpA avec HH_DISPLAY_TOPIC

Certaines personnes vont préférions via le OCX dans le passé parce qu'il était plus fiable sur IIRC w9x, mais je suppose que c'est pas problème dans une application 64 bits.

Il se peut que ces fonctions listent aussi certains ocx/dll non disponibles en 64 bits, mais cela vaut la peine d'essayer. Je ne peux pas facilement vérifier cela.

+0

Ce n'est pas une application 64 bits. C'est une ancienne application 32 bits qui est toujours supposée fonctionner sous Win9x. –

+0

Vous vous attachez à des nœuds pour prendre en charge un système d'exploitation que son fabricant n'a pas pris en charge depuis de nombreuses années. Il est de loin plus facile de le laisser partir et d'utiliser l'API htmlhelp qui * est * là. Alternativement, expliquez à votre patron qu'il est impossible de supporter n'importe quel ordinateur moderne (comme ceux que ses clients achèteront ces jours-ci), car il est essentiel de tout garder en état de fonctionner sur de vieux appâts. –

+0

@Donal: Je suis mon propre patron, donc il n'y a pas besoin d'exaplanations :-) Cette question portait sur un vieux jeu shareware qui se vend toujours assez bien pour justifier la réparation, mais pas assez bien pour réécrire l'aide de rayure. –

Questions connexes