Ошибка в передаче конкретной строки в библиотеку на C++ через структуру (Type) - VB
Формулировка задачи:
Уважаемые знатоки, возникла не понятная для меня проблема с передачей данных из программы пишущейся на VB6 в библиотечную функцию пишущуюся на C++ и компилированную MinGW (codeblocks).
передача осуществляется посредством передачи адреса на структуру:
С++:
VB6:
Все работает отлично пока не начинается обращение к ostrovodrinstruct::order, переданной в библиотечную функцию, внутри самой библиотеки - когда библ.функция доходит до обращения к переменной то VB программа выдает ошибку:
Инструкция по адресу "0x..." обратилась к памяти по адресу "0x...". Память не может быть "read"
"OK" -- завершение приложения
"Отмена" -- отладка приложения
После нажатия "OK" среда VB6 в которой приоизводился запуск вылетает.
Пробовал в структуру добавлять еще одно поле в конце без его использования - ошибку не выдает за то order пустое. Пробовал вызывать библиотеку из программы написанной на C++ - все работает отлично, но библиотека должна использоваться именно для программы на VB6.
передача осуществляется посредством передачи адреса на структуру:
С++:
VB6:
Все работает отлично пока не начинается обращение к ostrovodrinstruct::order, переданной в библиотечную функцию, внутри самой библиотеки - когда библ.функция доходит до обращения к переменной то VB программа выдает ошибку:
Инструкция по адресу "0x..." обратилась к памяти по адресу "0x...". Память не может быть "read"
"OK" -- завершение приложения
"Отмена" -- отладка приложения
После нажатия "OK" среда VB6 в которой приоизводился запуск вылетает.
Пробовал в структуру добавлять еще одно поле в конце без его использования - ошибку не выдает за то order пустое. Пробовал вызывать библиотеку из программы написанной на C++ - все работает отлично, но библиотека должна использоваться именно для программы на VB6.
Решение задачи: «Ошибка в передаче конкретной строки в библиотеку на C++ через структуру (Type)»
textual
Листинг программы
inhabitantsstruct *inhabitants; <font color="blue">short</font> inhsmax=<font color="darkblue"><b>0</b></font>; <font color="blue">short</font> inhscur=<font color="darkblue"><b>0</b></font>; <font color="blue">extern</font> <font color="teal">"C"</font> <font color="blue">void</font> WINAPI DLL_EXPORT addinhabitant(inhabitantsstruct* inhabitant) { inhabitantsstruct *inhstmp; <font color="blue">if</font>(inhscur==inhsmax) { inhsmax+=<font color="darkblue"><b>10</b></font>; inhstmp = <font color="blue">new</font> inhabitantsstruct[inhsmax]; <font color="blue">for</font>(<font color="blue">int</font> i=<font color="darkblue"><b>0</b></font>;i<inhscur;i++) {="" inhstmp[i]="inhabitants[i];" }="" <font="" color="blue">delete inhabitants; inhabitants = inhstmp; } inhabitants[inhscur] = *inhabitant; inhscur++; } </inhscur;i++)>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д