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

Использование Dll написанной в VC++ в программе компилируемой MinGW - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перегрузка операции http://www.cyberforum.ru/cpp-beginners/thread890567.html
Добрый день, Друзья! Столкнулся с такой проблемой, необходимо сравнить 2 пары чисел, вводимых с клавиатуры: Я перегрузил операцию ввода и вывода, теперь надо сравнить, в условиях задачи написано, что p1(пара 1) больше p2(2ой пары), если (p1.first>p2.first)||(p1.first==p2.first&&p1.second>p2.second). Есть вопрос как ввести p1.first(second) и p2.first(second. Ниже код: Pair.h #pragma once...
C++ Упорядочить три заданных числа по возрастанию Помогите пожалуйста написать простенькую программку на с++, составить программу, упорядочивающую три числа, А, В, С так, что в ячейке А находиться минимальное число, в ячейке В - среднее, в ячейке С максимальное. http://www.cyberforum.ru/cpp-beginners/thread890544.html
C++ Файл: Сформировать файл, элементами котого являются числа a1, a1*a2, a1*a2*a3,..., a1*a2*a3*...*an
привет всем, помогите пожалуйста решить задачку. Записать в файл N натуральных чисел: a1,a2,...,an(числа получить с помощью датчика случайных). Сформировать новый файл, элементами котого являются числа a1,a1*a2,a1*a2*a3,..., a1*a2*a3*...*an(массив не использовать)
C++ Суммирование в структуре
Всех приветствую,начинаю изучать С++ и вот встала такая задачка,думаю второй день над ней,решил спросить у знатоков! Надо найти все произведения автора и общее кол-во напечатанных экземпляров.Со второй частью проблема. Данные в файле записываются вот так: Ivanov Fizika 1995 Eksmo 2 Sidorov Matematika 2011 Rosnano 25 #include...
C++ Упорядочить список студентов по оценкам,полученным на экзамене по информатике http://www.cyberforum.ru/cpp-beginners/thread890485.html
здравствуйте все, помогите составить программу для этой задачки: На диске имеется файл данных STUDENT.DAT. Упорядочить список студентов по оценкам,полученным на экзамене по информатике, и распечатать его.
C++ Определить среднее число пробелов, используемых в строке Привет всем, помогите создать программу. Дан текстовый файл. Определить среднее число пробелов, используемых в строке. подробнее

Показать сообщение отдельно
Kojt
73 / 69 / 2
Регистрация: 19.05.2010
Сообщений: 167
04.06.2013, 15:26     Использование Dll написанной в VC++ в программе компилируемой MinGW
Добрый день!

Возникла следующая проблема.
Из-за некоторой специфики задачи (работа с DirectShow) необходимо написать модуль (dll) в MSVC
и подцепить его к проекту на Qt (компилляция средствами MinGW)

Делаю для теста два простых проекта, без Qt

Проект Dll в MSVC:
dll.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifdef DLL_EXPORTS
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif
 
// This class is exported from the dll.dll
class DLL_API Cdll {
public:
    Cdll(void);
    // TODO: add your methods here.
};
 
extern DLL_API int ndll;
 
DLL_API int fndll(void);


dll.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// dll.cpp : Defines the exported functions for the DLL application.
 
#include "stdafx.h"
#include "dll.h"
 
 
// This is an example of an exported variable
DLL_API int ndll=0;
 
// This is an example of an exported function.
DLL_API int fndll(void)
{
    return 42;
}
 
// This is the constructor of a class that has been exported.
// see dll.h for the class definition
Cdll::Cdll()
{
    return;
}


И делаю проект в Qt (используется только qmake и MinGw)
dlltest.pro
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
 
SOURCES += main.cpp
 
INCLUDEPATH += dll
 
LIBS += ./debug/dll.lib
 
HEADERS += \
    dll/dll.h


main.cpp
C++
1
2
3
4
5
6
7
8
9
10
#include "dll/dll.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    cout << "Hello World!" << fndll() << endl;
    return 0;
}


Библиотека собирается, но при сборке тестовой программы вываливается сообщение
undefined reference to `_imp___Z5fndllv'

Я уже всякие методы перепробовал, и reimp использовал, и dlltool для преобразования .lib
файл-то библиотеки находит, а функцию не видит

сборка выполняется следующей командой:
Код
g++ -Wl,-subsystem,console -mthreads -o debug/DllTest.exe debug/main.o  debug/dll.lib
Если открыть dll.lib в текстовом редакторе, то в нем есть вот такая запись __imp_?fndll@@YAHXZ
Может быть MS-компиллятор и MinGW по разному формируют имя функций для записи/чтения из dll ?

Подскажите что делать, куда копать?

Добавлено через 44 минуты
Уважаемый Модератор, мне кажется я ошибся с разделом и тему лучше переместить в "С++ для экспертов"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru