Z
zeliboba1
Здравствуйте.
Есть библиотека, которую подключаю к программе на с++
(
Из этой библиотеки делаю импорт структуры и процедуры.
Программу создавал как "пустой проект", выглядит она так:
Это её рабочий вариант, т.е. в качестве _консольного_ приложения она корректно работает, не выдает предупреждений при сборке.
Теперь встала проблема использовать структуру и функция в приложении типа Windows Forms.
Создаю стандартное приложение Windows Forms, не изменяя пробую запустить - всё Ок, работает.
Теперь хочу глобально объявить мою структуру из библиотеки и процедуру от туда же.
Пишу строчки (которые, как замечу, в консольном приложении работаю):
Добавляю их в главный файл .cpp, до функции main().
При сборке получаю предупреждение вида:
warning C4394: abc: символ для каждого домена приложений не следует помечать с помощью __declspec(dllimport)
соответственно при попытке использования импортированной структуры и процедуры - ошибки.
прошу подсказки, в чем дело? почему в консольном приложении работает как положено, а в Windows Forms нет, при том что
располагаю объявление структуры, как мне кажется, в одном и том же месте... MS VS 2008
Есть библиотека, которую подключаю к программе на с++
(
Ссылка скрыта от гостей
). Из этой библиотеки делаю импорт структуры и процедуры.
Программу создавал как "пустой проект", выглядит она так:
C++:
//****************************
#include <iostream>
#pragma comment(lib,"fdll.lib")
using namespace std;
Extern "C" {
extern __declspec(dllimport) struct variables { double a; } abc;
void F();
}
int main()
{
F();
std::cout<<abc.a;
return 0;
}
//***************************
Это её рабочий вариант, т.е. в качестве _консольного_ приложения она корректно работает, не выдает предупреждений при сборке.
Теперь встала проблема использовать структуру и функция в приложении типа Windows Forms.
Создаю стандартное приложение Windows Forms, не изменяя пробую запустить - всё Ок, работает.
Теперь хочу глобально объявить мою структуру из библиотеки и процедуру от туда же.
Пишу строчки (которые, как замечу, в консольном приложении работаю):
C++:
#pragma comment(lib,"fdll.lib")
Extern "C" {
extern __declspec(dllimport) struct variables { double a; } abc;
void F();
}
Добавляю их в главный файл .cpp, до функции main().
При сборке получаю предупреждение вида:
warning C4394: abc: символ для каждого домена приложений не следует помечать с помощью __declspec(dllimport)
соответственно при попытке использования импортированной структуры и процедуры - ошибки.
прошу подсказки, в чем дело? почему в консольном приложении работает как положено, а в Windows Forms нет, при том что
располагаю объявление структуры, как мне кажется, в одном и том же месте... MS VS 2008