powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создание dll с vcl функциями (DecodeDate)
4 сообщений из 4, страница 1 из 1
Создание dll с vcl функциями (DecodeDate)
    #33381714
Фотография Vector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте народ!
Вот появилась необходимость написать dll, которая бы использовала
внутри себя данную функцию.
По непонятным причинам, при использовании этой функции возникает ошибка переполнения стека (Stack overflow).
Вот мой код :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
extern "C" AnsiString __declspec(dllexport) dateToSqlQuery(System::TDateTime);

AnsiString dateToSqlQuery(System::TDateTime dt){
  AnsiString ret;
  Word y, m, d;
  DecodeDate(dt, y, m, d);
#if SERVER_TYPE==MSSQL
  ret=String(y);
  if(m< 10 ) ret=ret+"0"+String(m);
  else ret=ret+String(m);
  if(d< 10 ) ret=ret+"0"+String(d);
  else ret=ret+String(d);
#elif  SERVER_TYPE==FIREBIRD
  if(d< 10 ) ret=ret+"0"+String(d);
  else ret=ret+String(d);
  ret=ret+".";
  if(m< 10 ) ret=ret+"0"+IntToStr(m);
  else ret=ret+String(m);
  ret=ret+".";
  ret=String(y);
#endif
  return ret;
}
//---------------------------------------------------------------------------
Не могу понять в чем дело и, как добиться результата.
Может кто-нибудь знает? Подскажите please.
С уважением Vector
...
Рейтинг: 0 / 0
Создание dll с vcl функциями (DecodeDate)
    #33382281
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если ты так напишешь, то данный формат будут понимать абсолютно все сервера поддерживающие стандартsql92

String date_sql92( const System::TDateTime &dt )
{
return dt.FormatString("yyyymmdd");
}
...
Рейтинг: 0 / 0
Создание dll с vcl функциями (DecodeDate)
    #33382888
Фотография Vector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FormatString вызывает все туже ошибку.
Кстати, я ошибся, там выдается вообще не понятная ошибка:
Integer overflow
...
Рейтинг: 0 / 0
Создание dll с vcl функциями (DecodeDate)
    #33382995
Фотография Vector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда. Народ вопрос снят. Я сам накосячил, был невнимательным, за что и поплатился. Вот как я подключал и использовал функцию из dll:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  //В первой же строке и ошибка!! (Я просто скопировал это из другого места)
  //Я определяю функцию с параметром AnsiString, когда надо TDateTime!!!
  //typedef AnsiString (__stdcall *Function)(AnsiString);
  //Вот как надо, блин!!!
  typedef AnsiString (__stdcall *Function)(TDateTime);
  Function dsql=NULL;
  HINSTANCE dllLibrary=LoadLibrary("funclib.dll");
  dsql=(Function)GetProcAddress(dllLibrary, "_dateToSqlQuery");
  Label2->Caption="Ñòðîêà: "+dsql(DateTimePicker1->Date);
  FreeLibrary(dllLibrary);
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создание dll с vcl функциями (DecodeDate)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]