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

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

Восстановить пароль Регистрация
 
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 114
22.07.2013, 10:45     Не могу вызвать функцию из dll С++ в С# в системе Win 7 64bit, MSVS 2008 #1
Здравствуйте! Уже два дня не могу вызвать функцию из 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

В чем проблема? Скажите плиз!!! Весь инет перелазил, ответа не нашел.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.07.2013, 10:45     Не могу вызвать функцию из dll С++ в С# в системе Win 7 64bit, MSVS 2008
Посмотрите здесь:

C++ Ошибка приведения типов в MSVS 2008
Не могу вызвать функцию через указатель C++
C++ Конвертировать с MsVS 2008 в MsVS 2010
как из DLL вызвать функцию, находящуюся в exe? C++
C++ Подключение dll в MSVS 2010 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,333
Завершенные тесты: 1
22.07.2013, 11:23     Не могу вызвать функцию из dll С++ в С# в системе Win 7 64bit, MSVS 2008 #2
Цитата Сообщение от dqrest Посмотреть сообщение
C:\Users\рашид\Documents\
Попробуйте убрать русские символы в пути.
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 114
22.07.2013, 14:40  [ТС]     Не могу вызвать функцию из dll С++ в С# в системе Win 7 64bit, MSVS 2008 #3
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Попробуйте убрать русские символы в пути.
Windows 7 хорошо понимает русские символы и большие буквы!!!
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,333
Завершенные тесты: 1
22.07.2013, 14:52     Не могу вызвать функцию из dll С++ в С# в системе Win 7 64bit, MSVS 2008 #4
Цитата Сообщение от dqrest Посмотреть сообщение
Windows 7
А студия?
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,308
22.07.2013, 15:01     Не могу вызвать функцию из dll С++ в С# в системе Win 7 64bit, MSVS 2008 #5
Нет, русские символы тут вообще ни при чем. Тебе ж компилятор на русским по белому объясняет: Необработанное исключение: System.BadImageFormatException: Была сделана попытка загрузить программу, имеющую неверный формат.

Т.е. скорее всего ты пытаешься загрузить 32-битную DLL в 64-битный процесс, либо наоборот. Проверь опции сборки для обоих проектов.
Yandex
Объявления
22.07.2013, 15:01     Не могу вызвать функцию из dll С++ в С# в системе Win 7 64bit, MSVS 2008
Ответ Создать тему
Опции темы

Текущее время: 17:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru