| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Чайник спрашивает про ISAPI |
| Автор: tokaplan 1.6.2002, 07:23 |
| Написал я простейшее приложение ISAPI, вернее, не написал, а просто сгенерировал соответствующим Wizard'ом. Получился, как и следовало ожидать, файл .dll. И что с ним делать? Загружаю на сайт и пытаюсь набрать его имя - браузер пытается скачать его. Как быть? |
| Автор: tokaplan 1.6.2002, 09:17 |
| Уточнение: я имею в виду ISAPI Extension, а не ISAPI Filter. |
| Автор: Baa 1.6.2002, 13:53 |
| Для начала расскажу как оно работает...надо обращаться не к самой дллке. Так мы вызовем тестэкшен из дллы ( который мы предварительно написали ;) ) http://192.168.13.22/scripts/isapi.dll/testaction А вот так передаются параметры в этот тестэкшен http://192.168.13.22/scripts/isapi.dll/testaction?Cost=239 Также можно вызывать дефолтные экшены с параметрами: http://192.168.13.22/scripts/isapi.dll?Cost=239 Могу кинуть пример мелкософтского счетчика MFC isapi А вообще все хоть и говорят о приимуществе изапи, мне больше нравятся скрипты... |
| Автор: tokaplan 8.6.2002, 19:01 |
| Так мы вызовем тестэкшен из дллы ( который мы предварительно написали ;) ) http://192.168.13.22/scripts/isapi.dll/testaction Как должно выглядеть описание этого тестэкшена? Это что, функция testaction()? А если тестэкшен по умолчанию, как это задать? |
| Автор: Baa 8.6.2002, 22:05 |
| Давай я тебе лучше пример пошлю, это будет эффективней. Вот кусок из него. BEGIN_PARSE_MAP(CCounterExtension, CHttpServer) ON_PARSE_COMMAND(Clock, CCounterExtension, ITS_EMPTY) ON_PARSE_COMMAND(Default, CCounterExtension, ITS_EMPTY) DEFAULT_PARSE_COMMAND(Default, CCounterExtension) END_PARSE_MAP(CCounterExtension) void CCounterExtension::Clock(CHttpServerContext* pCtxt) { // Clock // Called when DLL is accessed using the format // <IMG SRC="/scripts/counter.dll?Clock"> // We don't call StartContent() or WriteTitle() here due to the // fact that those will send back tags appropriate only to // HTML pages. We will be sending back an image. // Don't allow these pages to be cached AddHeader(pCtxt, szExpires); AddHeader(pCtxt, szNoCache); // Get the current system time, and put it into a form // which our function will accept. CTime time = CTime::GetCurrentTime(); CString szTime = time.Format(_T("%H%%%M")); // call member function to output an xbitmap image // containing the digits OutputXBM(pCtxt, szTime); // EndContent() is only appropriate for HTML files, so we // don't call it here. } |
| Автор: tokaplan 9.6.2002, 09:38 | ||
// Clock // Called when DLL is accessed using the format // <IMG SRC="/scripts/counter.dll?Clock"> Обязательно ли dll должна помещаться в папке script? |
| Автор: Baa 9.6.2002, 19:58 |
| Она должна помещаться в папке, на которой стоит пермишен на выполнение |
| Автор: tokaplan 10.6.2002, 08:11 |
| А как задать это разрешение, к примеру, на Народе? Там вроде про это и упоминания нет. |
| Автор: Wowa 10.6.2002, 10:39 | ||
думаю, что никак. |
| Автор: Baa 10.6.2002, 15:43 | ||
Народ не держит ИЗАПИ |
| Автор: kao 25.7.2006, 19:19 |
| Подскажите пожалуйста. Очень нужно, а я в этом новичок. Параметр SRC тэга IMG в качестве аргумента может принимать DLL файл. Как все это делается и как все это работает. Нужно, что бы из DLL передавалось изображение. Буду признателен если покажите пример. |