Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
4 / 4 / 0
Регистрация: 06.01.2012
Сообщений: 117

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

22.07.2013, 10:45. Показов 1501. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Уже два дня не могу вызвать функцию из 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\Consol eApplication2\Program.cs:с
трока 16

В чем проблема? Скажите плиз!!! Весь инет перелазил, ответа не нашел.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.07.2013, 10:45
Ответы с готовыми решениями:

Подключить DLL в проект MSVS 2008
Сгенерировал для OpenGL32.dll DEF файл Borland-овской утилитой impdef, потом VS-шой утилитой lib сгенерировал import library, добавил в...

Не могу вызвать функцию из .dll
Добрый день ... Полазил по форумам и гайдам .... Пишу такой вот header: extern &quot;C++&quot; __declspec(dllexport) int function (int,int); ...

Конвертировать с MsVS 2008 в MsVS 2010
У меня есть проект на MsVS 2008. Он состоит с нескольких файлов, которые потом подключаются в основной программе. Как можно сделать чтобы...

4
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
22.07.2013, 11:23
Цитата Сообщение от dqrest Посмотреть сообщение
C:\Users\рашид\Documents\
Попробуйте убрать русские символы в пути.
0
4 / 4 / 0
Регистрация: 06.01.2012
Сообщений: 117
22.07.2013, 14:40  [ТС]
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Попробуйте убрать русские символы в пути.
Windows 7 хорошо понимает русские символы и большие буквы!!!
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
22.07.2013, 14:52
Цитата Сообщение от dqrest Посмотреть сообщение
Windows 7
А студия?
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
22.07.2013, 15:01
Нет, русские символы тут вообще ни при чем. Тебе ж компилятор на русским по белому объясняет: Необработанное исключение: System.BadImageFormatException: Была сделана попытка загрузить программу, имеющую неверный формат.

Т.е. скорее всего ты пытаешься загрузить 32-битную DLL в 64-битный процесс, либо наоборот. Проверь опции сборки для обоих проектов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.07.2013, 15:01
Помогаю со студенческими работами здесь

Переделать msvs 6 В msvs 2008
приложение написано на визиал студия 6 хочу внести в него коррективы есть НО у меня стоит студия 2008 сам файл...

Вызвать функцию из dll
V8.1 В справке по 1С есть инфа, как подключить dll-ку. Но вот только не написано как вызвать оттуда функцию. Мне нужно что-то вроде...

Вызвать функцию c++ из .dll
Имеется dll написанный на с++. В нем одна из вызываемых функций имеет вид extern &quot;C&quot; { /* ADF Test with pointer ...

Не вызвать функцию с DLL
Тут такая проблема с DLL!!! Обьясните, что я делаю не так Сама DLL #include &lt;vcl.h&gt; #include &lt;windows.h&gt; #include...

Вызвать функцию в dll с аргументами
Здравствуйте, в общем я думал что задача простая, оказалось нет...вот суть задачи. Нужно из Lua отправить данные в функцию dll(c++) и что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru