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

Получение значения переменной в Dll - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как осуществить на c++ передача видео на сайт в прямо эфире? http://www.cyberforum.ru/cpp/thread823095.html
хочу с экрана снимать видео и отправлять на сайт возможноли такое?
C++ Эмулятор мышки Здравствуйте все. Хотелось бы узнать, как можно на компьютере1 управлять курсором с помощью компьютера2 через USB-вход на компьютере1, так, чтобы компьютер1 воспринимал сигналы от компьютера2, как сигналы от мышки ? http://www.cyberforum.ru/cpp/thread819826.html
C++ Ошибка с типом
помогите пожалуйста найти ошибку Не могу скомпилировать программу пишет что проблема с типом float в функции prog3#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <math.h> #include <locale.h> #include <string.h> #include <windows.h>
C++ Тема с перестановками
Помогите пожалуйста найти где можно взять алгоритмы перестановок в двумерном массиве К примру: поменять верхнюю и нижнюю половинцы местам, повернуть массив по часовой стрелке и так далее искал в интернете- нашел только сортировки
C++ Вызов неэкспортированной функции из dll http://www.cyberforum.ru/cpp/thread819130.html
Здраствуйте, Есть виндовая библиотека twinapi.dll и мне из нее нужно вызвать 3 функции, которые не являются экспортированными. Узнал я о них с помощью дизассемблера. Возможно как то написать на С++ код, вызывающий эти функции? Ведь GetProcAddress возвращает адрес функции могу ли я указать его вручную!? Заранее Спасибо!!!
C++ WinApi и "C" Надо написать программу под "С" и WinApi Можете порекомендовать литературу в которой есть примеры именно на "С" подробнее

Показать сообщение отдельно
e427122
Сообщений: n/a

Получение значения переменной в Dll - C++

31.03.2013, 14:29. Просмотров 666. Ответов 1
Метки (Все метки)

Добрый день, как можно задавать и получать значение переменной которая описана в Dll. Я попробовал создать переменную, и написать процедуру которая принимает значение "int a" и задает его переменной "int __isCap"
Но у меня не получается обратиться к ней(я подключаю эту библиотеку к C#),
C#
1
2
3
4
5
 
[DllImport("Dll.dll")]
public static extern void __CamShow();
[DllImport("Dll.dll")]
public static extern void __set_isCap(int a);
При компиляции все нормально С#, при вызове __CamShow() все нормально, а при вызове __set_isCap(); ошибка
C#
1
2
3
4
5
Помощник отладки управляемого кода "PInvokeStackImbalance" обнаружил неполадку в "...\WindowsFormsApplication2TestDLL\bin\Debug\WindowsFormsApplication2TestDLL.vshost.exe".
Дополнительные сведения: Вызов функции PInvoke "WindowsFormsApplication2TestDLL!WindowsFormsApplication2TestDLL.Form1::__set_isCap" 
разбалансировал стек. Вероятно, это вызвано тем, что управляемая сигнатура PInvoke не 
совпадает с неуправляемой целевой сигнатурой. Убедитесь, что соглашение о вызовах и параметры 
сигнатуры PInvoke совпадают с неуправляемой целевой сигнатурой.
Что я делаю не правильно?


Вот dll.h
C
1
2
3
4
5
#ifndef _DLLTEST_H_
#define _DLLTEST_H_ 
extern "C" __declspec(dllexport) void __set_isCap(int a);
extern "C" __declspec(dllexport) void __CamShow();
#endif
Bот сама 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
#include <cv.h>
#include <highgui.h>
#include <cvaux.h>
#include <ctype.h>
 
#include "dll.h"
using namespace std;
 
extern "C" __declspec(dllexport) int __isCap=0;
 
 
extern "C" __declspec(dllexport) void __set_isCap(int a){
    __isCap=a;
}
 
extern "C" __declspec(dllexport) void __CamShow() 
{
    CvCapture* cam1 = cvCreateCameraCapture(CV_CAP_ANY);
    IplImage* img1;
    cvNamedWindow("Window1",1);
    while (__isCap==0)
    {
    img1 = cvQueryFrame(cam1);
    cvShowImage("Window1",img1);
    char a = cvWaitKey(33);
    if (a == 27) break;
    }
    cvReleaseCapture(&cam1);
    cvReleaseImage(&img1);
    cvDestroyAllWindows();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru