Re. Вопрос. BCB6. Делаю библиотеку и программу, ее использующую. Статическая линковка. Если в библиотеке начать использовать AnsiString (объявляю одну локальную переменную и никуда не передаю), то при выходе из основной программы получаю RunTime Error 204 (неправильный указатель).
Вот код библиотеки:
Код | #define _DLLMAINCPP #include <windows.h> #include <Classes.hpp>
#include "Zlib.h"
#pragma package(smart_init) #pragma hdrstop
AnsiString test;
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved) { return 1; }
void _export TestFunc(int test){
}
|
В основоной программе просто добавляю проект lib файл, а затем вызываю (просто так) TestFunc. При выходе из программы получаю ошибку. AnsiString, где бы не объявлял, вызывает ошибку. Без нее все работает. Пробовал sharemem, не помогает. Так же пробовал использовать класс TThread, при его объявлении такая же история. Хотя и программа и библиотека работают без проблем. Вот только при выходе...
Почему так? Какие еще варианты попробовать? Другие виды строк не устраивают - все равно нужно будет использовать TThread, а проблема судя по всему общая, что-то с классами... |