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

Импорт элементов класса в программу - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ вопрос по си-подключение видеопамяти http://www.cyberforum.ru/cpp-beginners/thread51630.html
в проге-заготовке вот строка far*p=(char far *)MK_FP(0xB800,0x0000) прога-текстовой редактор,вопрос-какая библио в CPP отвечает за работу с видеопамятью,что в этой строке нетак? компилят.выдает - c:14: предупреждение: инициализация из несовместимого типа указателя .c:14: ошибка: элемент инциализатора является не константа .c:14: предупреждение: определение данных не имеет тип или класс...
C++ Вывод даты, времени в лог Вообщем, в процессе выполнения программы ведется лог-файл. #include <time.h> #include <fstream> using namespace std; time_t system_time; int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, http://www.cyberforum.ru/cpp-beginners/thread51628.html
C++ нужно сделать бугущую строку, помогите пожалуйста!!
Пожалуйста, помогите мне надо программа, чтобы текст с надписью RADIO SABOTAGE выходила как бегущая строка слева направо по горизонтали экрана??
C++ Написать электронные часы
Кто-нибудь может написать электронные часы на с++(например 23:06)???
C++ Написал прогу она не работает!!!!! http://www.cyberforum.ru/cpp-beginners/thread51594.html
#include <windows.h> #include <cstdlib> #include <iostream> int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); int s, S1, S2, S3, S4, S5, S_total, x, x1, x2, x3, x4; s = 0; printf ("Òåñò ïî èíôîðìàòèêå ïî òåìå: Óñòðîéñòâî ÏÊ\n");
C++ Вопрос про список инициализации class A { public: A() {i=1;} private: int i; }; class B { public: подробнее

Показать сообщение отдельно
NightmareCode
14 / 7 / 1
Регистрация: 20.09.2009
Сообщений: 89
20.09.2009, 05:57     Импорт элементов класса в программу
Имеется созданная библиотека, включающая небольшой класс, как правильно реализовать доступ в программе к элементам данного класса, реализованным в dll.

В приложении-dll имеются, следующие файлы:
stdafx.h
targetver.h
dllmain.cpp-точку входа в dll
вот код VirtualLibraryDLL_beta1.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma once
 
class VirtualFuncs
{
    char* sampleName;
public:
    VirtualFuncs(void)
    {
        sampleName="Renault";
    }
 
    virtual ~VirtualFuncs(void)
    {
    }
    char* CALLBACK GetSampleName();
    virtual char* CALLBACK GetVirtSampleName();
};
Вот код VirtualLibraryDLL_beta1.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
#include "stdafx.h"
#include "VirtualLibraryDLL_beta1.h"
 
extern "C" char* CALLBACK VirtualFuncs::GetSampleName()
{
    return this->sampleName;
}
extern "C" char* CALLBACK VirtualFuncs::GetVirtSampleName()
{
    return sampleName;
}
Вот VirtualLibraryDLL.def
LIBRARY "VirtualLibraryDLL_beta1"

EXPORTS
GetSampleName
GetVirtSampleName
Вот само приложение. использующая данный класс. реализованный в dll
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
33
34
35
#include "windows.h"
 
int main()
{
    HMODULE hLib;
    hLib=LoadLibrary(L"VirtualLibraryDLL_beta1.dll");
    if(hLib!=NULL)
    {
        char* (*pGetNameSampleVirt)();
        (FARPROC&)pGetNameSampleVirt=GetProcAddress(hLib, "GetVirtSampleName");
        if(!pGetNameSampleVirt)
        {
            return -2;
        }
        else
        {
            char* strNameVirt=pGetNameSampleVirt();
        }
        char* (*pGetNameSample)();
        (FARPROC&)pGetNameSample=GetProcAddress(hLib, "GetSampleName");
        if(!pGetNameSample)
        {
            return -3;
        }
        else
        {
            char* strName=pGetNameSample();
        }
        FreeLibrary(hLib);
    }//if(hLib!=NULL)
    else
    {
        MessageBox(NULL, L"Невозможно загрузить DLL", L"DLL не найдена", MB_OK);
    }
}
Добавлено через 3 минуты
У меня есть предположение что надо помимо загрузки dll описывать файл-определения класса, а то как реализовать доступ к методом класса без самого объекта.
Или как-то можно описать сам конструктор, создающий объект в def-файле?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru