2009-11-17 7 views
3

У меня есть 32-битное приложение, написанное в Borland C++ Builder. Мне нужно программно отображать определенные страницы из файла HtmlHelp. До сих пор я делал это через HtmlHelp.ocx, но это не работает в 64-разрядных версиях Windows Vista/Windows7, как описано в this thread.Самый простой способ открыть программные файлы chm?

Я не могу скомпилировать приложение как 64-битный исполняемый файл. Поэтому единственным обходным решением, которое я нашел до сих пор, является создание 32-битного компонента, реализующего COM-объект, который загружает и вызывает в 32-разрядную DLL, и предоставляет 32-разрядный DLL-интерфейс в качестве COM-интерфейса.

Это звучит слишком сложно, просто для отображения файла chml с определенной темой. Должно быть что-то еще. Но что это?

ответ

1

Невозможно ли это через htmlhelp api? (Htmlhelp.h в MS SDK?)

В частности функция htmlhelpA с HH_DISPLAY_TOPIC

Некоторые люди предпочитаемые происходит через .ocx в прошлом, потому что он был более надежным по IIRC w9x, но я предполагаю, что это не проблема в 64-битном приложении.

Возможно, эти функции также перечислены в некоторых ocx/dll, а не на 64-битной земле, но стоит попробовать. Я не могу это легко проверить.

+0

Это не 64-разрядное приложение. Это традиционное 32-битное приложение, которое все еще должно работать на Win9x. –

+0

. Вы привязываетесь к узлам, чтобы поддерживать ОС, которые ее производитель не поддерживал в течение многих лет. Это намного проще, просто отпустите его и используйте API htmlhelp, который * там *. В качестве альтернативы, объясните вашему боссу, что невозможно поддерживать какой-либо современный компьютер (например, те, что покупают его клиенты в наши дни), потому что очень важно, чтобы все работало на дрянной старой мусорной корзине. –

+0

@ Donal: Я - мой собственный босс, поэтому нет необходимости в exaplanations :-) Этот вопрос касался старой условно-бесплатной игры, которая все еще достаточно хорошо продается, чтобы оправдать исправление этой помощи, но недостаточно хорошо, чтобы переписать ее с помощью царапина. –

 Смежные вопросы

  • Нет связанных вопросов^_^