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

Не могу вызвать функцию из dll С++ в С# в системе Win 7 64bit, MSVS 2008 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Коррекция http://www.cyberforum.ru/cpp-beginners/thread926858.html
#include <iostream> #include <string> #include <cstring> int main() { using namespace std; char charr; string str; cout << "Lenght of string in charr before input: " << strlen(charr) << endl;
C++ Не удается открыть файл *.lib в MSVS2010 Добрый день! Мне удалось устранить ряд ошибок которые я писал в теме. Но теперь "вываливается" другая ошибка: 1>LINK : fatal error LNK1104: не удается открыть файл "Pr1.lib" Пробывал подключать *.lib вот так: #pragma comment (lib, "Pr1.lib") и так: Project -> Add.. как внешнюю зависимость. http://www.cyberforum.ru/cpp-beginners/thread926847.html
Сформировать целочисленную прямоугольную матрицу C++
Сформировать целочисленную прямоугольную матрицу A(m,m) следующего вида: 1 2 3 .. m 0 1 2 .. m-1 0 0 1 .. m-2 . . . . . . . . . . 0 0 0 .. 1
C++ тренировки по с++
прочитал книгу по С++ всю))) где тренироваться по кодингу??
C++ std::map insert, нужно ли? http://www.cyberforum.ru/cpp-beginners/thread926801.html
ifstream input("data.txt"); string tmp; while(getline(input,tmp)) { data d = getData(tmp); login++; pass++; } input.close(); Вот так писал я все время, но внезапно заметил, что некоторые данные не добавляются в map.
C++ Массивы указателей на объекты как данные класса Вообщем: мне надо так,чтобы объект имел связь с N-ым количеством каких-то объектов.про динамические массивы в курсе. такой вопрос,что произойдет,если я создам массив указателей типа класс B внутри класса A, т.е размер массива указать нельзя и пусть это не динамический массив, видел что-то такое в своем раннем коде, сейчас надо юзнуть что-то похожее, только не хочется юзать, то ,что не... подробнее

Показать сообщение отдельно
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 114
22.07.2013, 10:45     Не могу вызвать функцию из dll С++ в С# в системе Win 7 64bit, MSVS 2008
Здравствуйте! Уже два дня не могу вызвать функцию из dll C++ в программе, написанная в C#. Программа пишется в MS VS 2008 Win 7 64bit.

Сначала опишу С++ проект. Создаю обычное пустое C++ dll приложение.

Header файл main.h:

C++ (Qt)
1
2
3
// main.h
#include <stdio.h>
 __declspec(dllexport) void Demo();
Def файл main.def:

C++ (Qt)
1
2
3
LIBRARY "new1"
EXPORTS
    Demo @1
Cpp файл main.cpp:

C++ (Qt)
1
2
3
4
5
6
#include "main.h"
 
__declspec(dllexport) void Demo()
{
  printf("11111111111111111111");
}
Далее я создаю ConsoleApplication на С#
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
 
 
namespace ConsoleApplication2
{
    class Program
    {
        [DllImport(@"new1.dll", EntryPoint = "Demo")]
        public static extern void Demo();
        static void Main(string[] args)
        {            
            Demo();
        }
    }
}
Запускаю приложение на C# и вылетает ошибка:

Необработанное исключение: System.BadImageFormatException: Была сделана попытка
загрузить программу, имеющую неверный формат. (Исключение из HRESULT: 0x8007000B
)
в ConsoleApplication2.Program.Demo()
в ConsoleApplication2.Program.Main(String[] args) в C:\Users\рашид\Documents\
Visual Studio 2008\Projects\ConsoleApplication2\ConsoleApplication2\Program.cs:с
трока 16

В чем проблема? Скажите плиз!!! Весь инет перелазил, ответа не нашел.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru