Страница: 1 |
Вопрос: Проблема с COPYMEMORY | Добавлено: 13.08.05 14:56 |
Автор вопроса: ![]() |
Это не то. чтоб совсем проблема, но немного достает. Я в своей проге делаю отдельную библиотеку под окна-справочники (т. к. предвижу, что часто буду менять там что-то). Работать с ней буду через позднее связывание (получается чтото типа плагина), т. к. перекомпилировать экзешник каждый раз нет охоты (а этих разов, видать, будет много). В эту ДЛЛку я передаю объект ADO.Recordset для заполнения окна-справочника и делаю это так:
Public Function FillDict(ByVal lngRecordset As Long) As Long On Error Goto No dim AdoR As ADODB.Recordset [B] CopyMemory ByVal AdoR, ByVal lngRecordset, 4&[/B] Set FormDict.MshFlexGrid.Recordset=AdoR [B] ZeroMemory byVal AdoR, 4&[/B] ... FillDict=0 'Все нормально, возвращаем 0 Exit Function no: FillDict=-1 'Ошибка какая либо ... Exit Function End Function Вот ее вызов: objFDict.FillDict VarPTR(MyAdoRecordset) Ничего особенного тут нет, кроме одного ньюанса: в откомпилированном виде все работает без проблем, а вот в пошаговом (через Ф8) возникает ошибка: RemoteProcedure Call Failed У кого-то есть идеи, как это безобразие можно прекратить??? |
Ответы | Всего ответов: 6 |
Номер ответа: 1 Автор ответа: ![]() ![]() Вопросов: 0 Ответов: 1066 |
Профиль | Цитата | #1 | Добавлено: 13.08.05 15:14 |
Это безобразие прекращается использованием средства отладки, позволяющим выполнять программу в пошаговом режиме. Т.е. какого-нибудь отладчика. Например OllyDbg. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 20 Ответов: 285 |
Профиль | Цитата | #2 | Добавлено: 13.08.05 15:34 |
А средствами Бейсика???? |
Номер ответа: 3 Автор ответа: ![]() ![]() Вопросов: 0 Ответов: 1066 |
Профиль | Цитата | #3 | Добавлено: 13.08.05 15:42 |
Что средствами Бейсика? Произвести полноценную отладку? Нет такого. Как впрочем и "средствами" IDE.
Тот пошаговый режим, который предоставляет IDE, отладочным инструментом можно назвать с очень большой натяжкой. У меня вот встречный вопрос: почему постоянно люди просят "средствами Бейсика". Они что, эти "средства", - лучше, удобней, гибче, надёжней или что-то ещё? Имхо, кроме дополнительных неудобств и ограничений, ничего "средства Бейсика" не дают. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 20 Ответов: 285 |
Профиль | Цитата | #4 | Добавлено: 13.08.05 15:44 |
Вообще то согласен! |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #5 | Добавлено: 13.08.05 16:50 |
Сначала объясни, почему передаётся varptr as long, а не просто as recordset. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 20 Ответов: 285 |
Профиль | Цитата | #6 | Добавлено: 20.08.05 15:10 |
Для GSerg. когда в библиотеку (в ней находятся окна-справочники), которую создал через CreateObject, передаешь recordset, получается не совсем хорошая вещь: MSHFlexGrid (я нею пользуюсь для отображения справочных таблиц) не хочет видеть recordset, переданный таким образом в такую библиотеку. Может это глюк моей среды, но проверено временем. А если передать его как ЛОНГ и потом сделать так, как я описал, то Set MshFlexGrid.Recordset=AdoR прорабатывает нормально. Собственно все... |
Страница: 1 |
|