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

Создание DLL - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ dynamic_cast в иерархии http://www.cyberforum.ru/cpp/thread22003.html
class A { .... }; class B : public A { public: A a1; A a2;
C++ Помогите сделать ActiveX компонент Таймера на микросекунду из готовых исходников ... в ветке http://www.cyberforum.ru/cpp-beginners/thread20934.html?highlight=%F2%E0%E9%EC%E5%F0 обсуждался вопрос программирования таймера на 1 МИКРО!секунду. Ensase предложил свой вариант -... http://www.cyberforum.ru/cpp/thread21910.html
Возможность Borland C++ 5.02 C++
Можно ли создать хорошою программу на Borland C++ 5.02 :help:
Как перегрузить функцию xcout? C++
У меня уже мозги не варят... Пожалуйста подскажите как перегрузить функцию xcout что бы в качетве аргумента она получала указалеть на символьную строку.. точнее создать пеергруженную функцию...
C++ Инспектор динамической памяти процессов http://www.cyberforum.ru/cpp/thread21230.html
Здравствуйте! Помогите пожалуйста. Нужно сделать "Инспектор динамической памяти процессов". Может у кого-нибудь есть что-нибудь?
C++ Задачка с динамической памятью и вводом из файла Здраствуйте...Помогите написать любую программу с использованием динамической память и ввода из файла...на c++ версии вроде 3.1 досовский вообщем..Программа расчитана на конец первого симестра в... подробнее

Показать сообщение отдельно
alexakafranc
0 / 0 / 0
Регистрация: 09.09.2009
Сообщений: 4
29.04.2010, 13:22
Всем доброго времени суток!
Среда выполнения Borland Builder
проблема в вызове метода класса зашитого в dll
//содержание dll
//main.cpp
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
30
31
32
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
#include "dll_lmain.h"
#include <stdio>
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
    return 1;
}
 
MyClass::MyClass()
{
    field =10;
}
 
bool MyClass::Message(int a,int b)
    {
      int c=  a+b;
      field = c;
     return true;
      //printf("asdds=%i",c);
    }
 
DLL_SPEC MyClass* ClassReturn()
{
    MyClass* my = new MyClass();
    return my;
}
//---------------------------------------------------------------------------
//содержание dll_main.h
C++
1
2
3
4
5
6
7
8
9
#define DLL_SPEC extern "C" __declspec(dllexport)
 
class MyClass
{
public:
    MyClass();
    int field;
    bool Message(int a,int b);
};
//Основной проект
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    MyClass* (*ClassReturn)();
    MyClass* my;
    HINSTANCE hLib = LoadLibrary("mydll.dll");
    if (hLib) {
        ClassReturn= (MyClass*(*)()) GetProcAddress(hLib, "_ClassReturn");
        if (ClassReturn)
        {
            my = ClassReturn();
            Label1->Caption = IntToStr(my->field);
            my->field =3;
            //my->Message(2,3);                          //здесь выдает ошибку             
            Label2->Caption = IntToStr(my->field);
        }
    }
    FreeLibrary(hLib);
Ошибка [Linker Error] Unresolved external 'MyClass::Message(int, int)' referenced from C:\123\DLL\UNIT1.OBJ
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru