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

Экспорт функции DLL - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Пульсометр выдает рандомные значения http://www.cyberforum.ru/cpp/thread1849070.html
Доброго времени суток, я пытаюсь усовершенствовать алгоритм для сенсора пульса (характеристики тут: https://www.maximintegrated.com/en/design/reference-design-center/system-board/6300.html/tb_tab0 )...
C++ Вызвать функцию из dll с неопределённым числом параметров Нужно вызвать из dll функцию с неопределённым числом параметров. пока что работаю с таким вызовом char res; char (*dll) (char* ...); dll = (char (*)(char* ...))GetProcAddress(hlib, "alfa"); ... http://www.cyberforum.ru/cpp/thread1847738.html
Вычисление суммы чисел, от параллельных процессов MPI C++
Задача такая, запускаются параллельно 5 процессов, каждый из них генерит рандомное число и отправляет соседнему процессу, нужно вывести сумму всех этих чисел. Вот что получилось #include <mpi.h>...
Не работает рекурсивная функция C++
У меня есть поле 80 на 80 клеток, с препятствиями. Функция должна в отдельный массив записавыть в соответствующую клеточку число, означающее, за сколько ходов туда можно добраться из начальных...
C++ C++ to C converter (OOP C) http://www.cyberforum.ru/cpp/thread1846824.html
Всем привет! Не встречал ли кто подобного конвертера, который может код на языке высокого уровня конвертировать в Си-шный код (плохочитаемый, для выкладки в качестве опенсорца для любопытных и для...
C++ H323Plus + PTLib: PDU Read Error: Timed Out на приемном канале Здравствуйте товарищи, помогите кто чем может разобраться с ошибкой. Анамнез: Есть самописная софтина которая должна осуществлять телефонную связь с удаленным терминалом по протоколу H.323. При... подробнее

Показать сообщение отдельно
Фабелойс
0 / 0 / 0
Регистрация: 08.08.2016
Сообщений: 14

Экспорт функции DLL - C++

13.11.2016, 23:58. Просмотров 279. Ответов 2
Метки (Все метки)

Вечер добрый.
Работаю над проектом, в котором из DLL экспортируются функции для другого проекта. Столкнулся с проблемой, что сначала была VC 2010, и все работало. Потом поставил VС 2015 Community и не работает экспорт, как я понимаю.

Вот код DLL:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DLLALIVE_API char * GetName(void)
{
    char * temp = "Alive";
    char * pName = new char[10];
    int i = 0;
    for ( ; i < 5; ++i)
    {
        pName[i] = temp[i];
    }
    pName[i] = '\0';
    return pName;
}
DLLALIVE_API BaseFactory * GetFactory(void)
{
    AliveFactory * Factory = new AliveFactory;
    return Factory;
}
А это подгруз в основном проекте:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
typedef BaseFactory* (*GetFactory)(void);
    typedef char* (*GetName)(void);
 
    GetFactory pFnGetFactory;
    GetName pFnGetName;
 
    WIN32_FIND_DATA FindFileData;
    HANDLE hFind;
    HMODULE hMod;
 
    hFind = FindFirstFile(_T("*.dll"), &FindFileData);
    if (hFind == INVALID_HANDLE_VALUE)
    {
        cout << "DLL not found" << endl;
    }
    else
    {
        do
        {
            bool check=true;
            hMod = LoadLibrary(FindFileData.cFileName);
            if (hMod == NULL)
            {
                cout << "Cannot load library " << FindFileData.cFileName << endl;
            }
 
            pFnGetFactory = (GetFactory)GetProcAddress(hMod, "GetFactory");
            if (pFnGetFactory == NULL)
            {
                cout << "Cannot load function GetFactory" << endl;
                check = false;
            }
 
            pFnGetName = (GetName)GetProcAddress(hMod, "GetName");
            if (pFnGetName == NULL)
            {
                cout << "Cannot load function GetName" << endl;
                cout << (char*)pFnGetName();
                check = false;
            }
            if (check)
            {
                AddCategory(pFnGetFactory(), pFnGetName());
            }
        } 
        while (FindNextFile(hFind, &FindFileData) != 0);
    }
    FindClose(hFind);
При дебаге выдает, что как раз pFnGetFactory и pFnGetName равны нулю. Подскажите, в чем проблема. Может ли это быть еще из-за того,ч то изначально код писал на Вин32, а сейчас на Вин64?

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