Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу Создание окна и запуск 3d анимации
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
IEshua IEshua вне форума
Member
 
Сообщений: 26
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 12.12.2003
Angry Создание окна и запуск 3d анимации - 21.11.2008, 02:43

Код:
void __fastcall TFormDemo::BitBtnRunClick(TObject *Sender)
{
   if(!ispicload || !ar.size() || EditPic->Text.IsEmpty() || !StaticTextPriborF->Visible) return;
   id = 0;
  
   //грузим dll'ку
   HMODULE hRepModule = GetModuleHandle("dll.dll");
   if(!hRepModule)
   {
      hRepModule = LoadLibrary("dll.dll");
   }
   if(!hRepModule) return;

   //Получаем адреса функций
   SetCallBackMouseClick    = (void(*)(void*))GetProcAddress(hRepModule, "SetCallBackMouseClickFunction");
   SetSceneImage            = (void(*)(char*, int, int))GetProcAddress(hRepModule, "SetSceneImage");
   AddPoint                 = (void(*)(char*, int, int, int))GetProcAddress(hRepModule, "AddPoint");
   InitScene                = (void(*)(void))GetProcAddress(hRepModule, "InitScene");
   SetObjectPos             = (void(*)(int,int))GetProcAddress(hRepModule, "SetObjectPos");
   SendLaserLight           = (void(*)(int))GetProcAddress(hRepModule, "SendLaserLight");
   SetResPath               = (void(*)(char*))GetProcAddress(hRepModule, "SetResPath");
   SetTextFont              = (void(*)(int,int,int,int,int,int,char*,int))GetProcAddress(hRepModule, "SetTextFont");
   SetPColor                = (void(*)(int))GetProcAddress(hRepModule, "SetPColor");
   Clean                    = (void(*)(void))GetProcAddress(hRepModule, "Clean");
   SetPSize                 = (void(*)(int))GetProcAddress(hRepModule, "SetPSize");
   SetAnimSpeed             = (void(*)(int speed))GetProcAddress(hRepModule, "SetAnimSpeed");
   SetPointSize             = (void(*)(int size))GetProcAddress(hRepModule, "SetPointSize");
   ismoving                 = (bool(*)(void))GetProcAddress(hRepModule, "ismoving");

   //Всякая инициализация
   SetCallBackMouseClick(&fmouseclick);
   SetPColor(D3DRGB(inifile->gopt.demo_potions.pcolor));
   SetAnimSpeed(inifile->gopt.demo_potions.animspeed);
   MyFont afont = inifile->gopt.demo_potions.font;
   SetTextFont(afont.fHeight, afont.fWeigh, afont.fItalic, afont.fUnderline, afont.fStrikeOut, afont.fCharSet, afont.fFace.c_str(), afont.color);
   SetSceneImage(EditPic->Text.c_str(), ImagePic->Picture->Width, ImagePic->Picture->Height);
   SetResPath(ExtractFilePath(Application->ExeName).c_str());
   SetPSize(inifile->gopt.demo_potions.psize);
   SetPointSize(inifile->gopt.demo_potions.pointsize);

   SetObjectPos(StaticTextPriborF->Left, StaticTextPriborF->Top);

   for(uint i=0; i < ar.size(); i++)
   {
       AddPoint(ar[i].text->Caption.c_str(), ar[i].text->Left, ar[i].text->Top, i);
   }

   //грузим параметры ссоединения
   LoadConnectionParam(inifile->gopt.projects_options[ComboBoxProject->ItemIndex].dbname, NULL);
   last_bd_id = 0;

   InitScene(); //здесь создается окно и 3d анимация, которая живет своей жизнью.
   Clean();
   FreeLibrary(hRepModule);

}
Код:
AnsiString TFormDemo::LoadConnectionParam(AnsiString DBName, TADOConnection *dev)
{
    ADOConnection1->Close();
    ADOConnection1->ConnectionTimeout = 10;
    AnsiString str;
    AnsiString ret="";

    str = "Provider=SQLOLEDB.1;";
    if(inifile->gopt.db_options.db_auth_type)
    {
        str += "Integrated Security=SSPI;";
    } else
    {
        str += "Password=";
        str += inifile->gopt.db_options.db_password;
        str += ";";
    }
    str += "Persist Security Info=False;";
    str += "User ID=" + inifile->gopt.db_options.db_login + ";";
    str += "Initial Catalog=" + DBName + ";";
    str += "Data Source=" + inifile->gopt.db_options.db_host + ";";
    ADOConnection1->ConnectionString =str;
    ADOConnection1->Open();
    return ret;
}
Логика простая. Юзер давит на кнопку, в обработчике
1. инициализируется dll'ка(в ней создается окно и запускается 3d анимация).
2. Открывается соединение и программа читает из Базы всяческие данные по таймеру.

Все работает, НО. Когда происходит ADOConnection1->Open() почему-то вызывается DLLMain() в dll.dll.

Вопрос: с какого ^*& это происходит? Что ADOConnection забыло в Dll'ке????
C++ Builder 6.0. Баундс чекером прогнал на предмет глюков памяти, вроде все чисто.
Ответить с цитированием
  (#2 (permalink)) Старый
IEshua IEshua вне форума
Member
 
Сообщений: 26
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 12.12.2003
По умолчанию 21.11.2008, 03:31

Блин опозорился. А всему виной 2 часа ночи Удалите тему пожалуйста!
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание окна в DLL disassembler Вопросы начинающих программистов 0 18.01.2011 14:09
создание flash- анимации Stanislav88 Софт и программы 1 03.02.2010 16:23
Создание анимации на С++ imported_MC Вопросы начинающих программистов 3 25.03.2009 11:57
Создание простого окна в C++ Slooz Вопросы начинающих программистов 5 07.11.2007 21:09
создание анимации Матрикс Софт и программы 2 18.06.2007 21:54
Динамическое создание окна Media Player поверх обычного окна evilbeaver Visual C++ 5 28.11.2006 21:26
TThread, создание, запуск, остановка, заморозка и возобновление BreakPointMAN C++ Builder 24 06.10.2006 17:11
Создание сайтов и Flash анимации Митька_Димка Flash и ActionScript 7 15.01.2006 03:22
Создание анимации в С++ imported_ViTYAi Visual C++ 2 29.06.2005 16:39
Создание анимации в диалоге Anonymous Visual C++ 2 15.01.2004 13:23
Динамическое создание окна snaky Visual C++ 1 19.06.2003 17:17
Повторный запуск программы и открытие окна Templar C++ Builder 1 05.12.2002 10:29



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов