Привет. Не пинайте, я только учусь. Вопрос 1 Пишу проект, там ехе - это чисто интерфейс. Пишется на делфях... Компоненты там всякие красивые и прочие... Но это потом.. А сейчас движок пишется в виде длл на С++. (VC7) Там такое дело, нужно экспортировать не только функции, но и переменные... К примеру, чтобы можно было отслеживать ход операции и устанавливать ProgressBar в нужное состояние. Т.е. переменные, экспортируемые из длл, которые можно читать и менять из ехе. Самый очевидный вариант - это VirtualAlloc и разделяемая память или мэппинг. Но чувствую, что не то что-то. Вопрос. Можно ли при сборке длл как-то задать параметр, что такая-то переменная экспортируется? Если нет, то как наиболее просто организовать экспорт переменных...? ------------------------ Вопрос 2 Где можно почитать о формате chm и если кто-то сталкивался или сам писал компилятор, скиньте сюда или в ПМ инфу и ссылки. Заранее благодарен
Добавить к Quantum я вряд ли что могу. Укажи либо в деф-файле, либо в /EXPORT, либо в __declspec(dllexport)
Второе в С++ задекорируется и из делфи труднее будет импортировать (придётся писать декорированное имя).
а можно написать 2 экспортируемые функции: float get_progress(void) и set_progress(float value) и тем самым избавится от экспорта переменной (что имхо является лучшим решением); hhc.exe? могу скинуть простой пример (проект) по сборке хелпа.
Quantum Т.е. если у нас такое дело (без деструкторов и конструкторов) class GUI_Opt { public: int pbPosition1; int pbPosition2; int pbPosition3; int pbPosition4; int CntR; char* szStat [255]; }; ...... ...... ..... GUI_Opt somevar1; то что нужно прописать в def-файле, чтобы экспортировать somevar1? И размер при экспорте задавать нужно как-то? Это ж не двор будет... Или там просто экспортируется указатель? Нет, как раз это не является лучшим решением... Я об этом в первую очередь подумал... Потом пришел к выводу что вызывать функции каждый раз когда нужно получить параметр - не вариант. Давай. Потому как первый раз столкнулся с необходимостью программно из htm-траничек собрать chm файл.
Наоборот, мониторить изменение переменной - это плохое решение. Указатель. HTML HelpWorkshop идёт вместе со студией. htm2chm - простая прога, помогающая просто собрать chm-файл. Helpware FAR - многофункциональная штуковина, чтобы не сидеть в HTML HelpWorkshop. Она может и MS Help 2.x делать.
DLL - это не include для C++ - это все-таки немного другой зверь. И отношение к нему должно быть соответствующим. Человек судя по всему зациклился на языке программирования, и забыл про другие средства решения проблемы нотификации (оповещения того-же ProgressBar-а): 1) Самый тупой вариант - передаем в вызывающую функцию хендл окна, а функция будет слать статусные сообщения через оычную очередь сообщений (как вариант можно слать в очередь потока) 2) Передавать в функцию адрес CallBack-процедуры. А параметры ее можно выдумать какие угодно.
IceStudent Нет, там другая ситуация. Это менеджер закачек, который может качать файлы и сайты, и в свою очередь последние собирать в chm айлы для удобства.
nitrotoluol Тогда обычная сайтовая качалка + htm2chm. Или продвинутая, типа Offline Explorer, которая умеет сама экспортировать скачанное в chm.