Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
gon21
0 / 0 / 0
Регистрация: 28.07.2009
Сообщений: 4
#1

DLL в borland c++ - C++

28.07.2009, 23:53. Просмотров 2023. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//Пример кода в dll:
 
int count;
 
int __stdcall __export f_001(const char* cst)
{
  count++;
  ...
  return count;
}
 
//Пример в ехе:
 
int GetCount()
{
  int count;
  ...
  FARPROC f_001_dll = GetProcAddres(dll, "f_001");
  int count = f_001_dll("lalala");
 
 return count;
}
Люди подскажите!!! Как сделать так чтобы count в DLL увеличевался на 1
при каждом вызове GetCount в exe.

У меня при каждом вызове GetCount count = 1;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2009, 23:53     DLL в borland c++
Посмотрите здесь:

Создание DLL в Borland C++ 3.1 - C++
Приветствую вас многоуважаемые прогеры!) У меня возникла проблема в написании драйвера для контроллера, проблема заключается в выподании...

Открыть dll из Borland в Visual Studio - C++
Доброго времени суток! Я сталкнулась с одной проблемой. Помогите пожалуйста разобраться. У меня есть dll и lib файлы, написанные на...

Borland C++ Builder 6.0 не может найти свои же dll файлы - C++ Builder
Недавно установил Borland C++ Builder 6.0 . Всё бы хорошо но при компиляции проэкта пишет что не знает где файлы: borlndmm.dll ...

Windows I/o без Kernel32.dll и Advapi32.dll - C++
Добрый день. Необходимо в Windows XP SP3 распечатать в стандартный поток "some text here" без прямого или косвенного использования...

При компиляции DLL-проекта не создается DLL-ка - C++
Добрый день. создал в Visual Studio 2010 проект C+= типа DLL. В файл dllmain.cpp вставил вот такой код: // test.cpp: определяет...

Borland c++ ! - C++
Кто поможет везде 1-й вариант решить Задание и тексты необходимо переписывать!!!

Borland C++ - C++ Builder
Помогите , сестренке надо... написать стандартную прогу для курсовой для футбольных клубов, 3 параметра: название клуба, лига, год...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Paulie
Айхрень...
306 / 174 / 4
Регистрация: 02.06.2009
Сообщений: 1,078
29.07.2009, 00:06     DLL в borland c++ #2
Цитата Сообщение от gon21 Посмотреть сообщение
//Пример кода в dll:
int count;
а где, собственно, задание первоначального значения переменной?
плюс Вам нужно текст

Цитата Сообщение от gon21 Посмотреть сообщение
int count;
...
FARPROC f_001_dll = GetProcAddres(dll, "f_001");
вынести за пределы Вашей функции, так как при каждом её вызове эти значения переопределяются на начальные. Вставьте это в код, где у вас инициализируется переменная dll

Добавлено через 3 минуты 11 секунд
Точнее даже что-то на подобие этого. Уже сплю, поэтому мог иошибиться

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void main()
{
  int dll = LoadLibrary(...);
  ...
  FARPROC f_001_dll = GetProcAddres(dll, "f_001");
  GetCount(f_001_dll);
}
 
int GetCount(FARPROC f_001_dll)
{
int count = f_001_dll("lalala");
 
return count;
}
gon21
0 / 0 / 0
Регистрация: 28.07.2009
Сообщений: 4
29.07.2009, 00:24  [ТС]     DLL в borland c++ #3
Мне нужно так чтоб работоло...

загрузить 1-ну копию dll
и потом многократно вызывать F_001_dll из разных процесов, и
при каждом вызове f_001_dll count в dll должен увеличевотся на 1.

как мне это правильно сделать?

Добавлено через 10 минут 18 секунд
вот мне гдето подсказали. непашит.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
int(far* f_001_dll)(const char*);
HANDLE dll = GetModuleHandle("mydll");
(FARPROC)faddr = GetProcAddress(dll,"f_001_dll");            //теперь попробывал отсюда. непашит.
 
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR cl, int)
{
   char buf[255];
 
        CreateMutex(0, 1, "cmx1");
 
           if(GetLastError()!=ERROR_ALREADY_EXISTS)
           {
                 Application->Initialize();
                 Application->CreateForm(__classid(TForm1), &Form1);
                 Application->CreateForm(__classid(TForm2), &Form2);
                 Application->Run();
           }
           else
           {
             //(FARPROC)faddr = GetProcAddress(dll,"f_001_dll");         //сдесь раннше вызывал
             wsprintf(buf, "RulMain = %x0", dll);
             MessageBox(0, buf, "", MB_OK);
             if((FARPROC)f_001_dll)
             {
               int count = f_001_dll("lalala");
              
             }
        return 0;
}
Alexandoros
227 / 65 / 4
Регистрация: 02.06.2009
Сообщений: 280
29.07.2009, 18:25     DLL в borland c++ #4
Вот так будет работать с процессами.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//////////////////////////////
//
// Эту переменную нужно поместить в шаред секцию. Читай в справке борланда по длл как они там создаются. Это пример для визуал студии.
 
#pragma data_seg("shared")
long count = 0;
#pragma data_seg()
#pragma comment(linker, "section:shared,rws")
//
/////////////////////////////
 
int __stdcall __export f_001(const char* cst)
{
   long res;
   res =  InterlockedIncrement(&count);
    ...
   return res;
}
gon21
0 / 0 / 0
Регистрация: 28.07.2009
Сообщений: 4
30.07.2009, 22:54  [ТС]     DLL в borland c++ #5
Спосибо попоробую сегодня.

Добавлено через 5 часов 27 минут 15 секунд
[QUOTE=Alexandoros;228013]Вот так будет работать с процессами.
[CPP]
//////////////////////////////

Както умена не пошло, а точнее ничего не изменилось.
A вообще мине надо чтоб эта DLL из других процесов вызывалась бы
по GetModuleHandle("My_dll");

Добавлено через 2 минуты 41 секунду
Кстати с семафорами вроде поучается, но немножко нето.
Alexandoros
227 / 65 / 4
Регистрация: 02.06.2009
Сообщений: 280
30.07.2009, 23:58     DLL в borland c++ #6
GetModuleHandle("My_dll");
юзать нуна LoadLibrary
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2009, 00:11     DLL в borland c++
Еще ссылки по теме:

Borland C++ 3.11 - C++
Помогите пожалуйста используя Borland C++ 3.11 Вот задание в формате doc: ...

Borland 3.0 - C++
Помогите переделать эту задачу для Борланда: #include <stdio.h> #include <stdlib.h> #include <time.h> #include <conio.h> ...

Borland c++ - C++
Помогите, пожалуйста, решить задачу: Даны числа a и b. Сколько в диапазоне чисел, в которых есть по крайней мере 2 одинаковые цифры?

C++ borland - C++
Помогите пожалуйста решить, сам не имею возможности т. к. мозг не шарит =\ 1. Дана сторона равностороннего треугольника. Найти площадь...

Borland C++ 3.1 - C++
Кто может набрать ету формулу в програми Borland C++ 3.1


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
gon21
0 / 0 / 0
Регистрация: 28.07.2009
Сообщений: 4
31.07.2009, 00:11  [ТС]     DLL в borland c++ #7
Она же вроде каждый раз новую копию загружает.
Yandex
Объявления
31.07.2009, 00:11     DLL в borland c++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru