Подключить dll на c++ к c# (DllImport)

Узнай цену своей работы

Формулировка задачи:

Есть dll написанная на с++, нужно подключить к c#. Код c++
Листинг программы
  1. #include <Windows.h>
  2. //#include <TlHelp32.h>
  3. #include <tchar.h>
  4. #include <conio.h>
  5. __declspec(dllexport)
  6. int test_Func(int ret)
  7. {
  8. return ret;
  9. }LIBRARY "mydll"
  10. EXPORTS
  11. test_Func
Откомпилировал Release x86, получил файл mydll.dll. Пытаюсь эту dll подключить к c#. Код c#
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Runtime.InteropServices;
  10. namespace dll_test
  11. {
  12. public partial class Form1 : Form
  13. {
  14. #region Наша dll
  15. //[DllImport("mydll.dll")]
  16. //private static extern int test_Func(int set);
  17. //[DllImport("mydll.dll", CharSet = CharSet.Unicode, EntryPoint = "test_Func")]
  18. // private static extern int test_Func(int ret);
  19. [DllImport(@"mydll.dll")]
  20. static extern int test_Func(int a);
  21. #endregion
  22. public Form1()
  23. {
  24. InitializeComponent();
  25. }
  26.  
  27. #region Событие - нажатие клавиши (Отправить)
  28. private void bt_send_Click(object sender, EventArgs e)
  29. {
  30. test_Func(1);
  31. }
  32. #endregion
  33. }
  34. }

Ошибки.

Откомпилировал Release Any CPU, при вызове функции test_Func(1); выдает ошибку:

Необработанное исключение типа "System.BadImageFormatException" в dll_test.exe Дополнительные сведения: Была сделана попытка загрузить программу, имеющую неверный формат. (Исключение из HRESULT: 0x8007000B)

Откомпилировал Release x86, при вызове функции test_Func(1); выдает ошибку:

Необработанное исключение типа "System.EntryPointNotFoundException" в dll_test.exe Дополнительные сведения: Не удается найти точку входа "test_Func" в DLL "mydll.dll".

Буду благодарен за любую помощь) И даже попытки помочь приветствуются

Решение задачи: «Подключить dll на c++ к c# (DllImport)»

textual
Листинг программы
  1. [DllImport(@"путь до библиотеки", CallingConvention = CallingConvention.Cdecl)]
  2. static extern int test_Func(int a);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут