newbie1992 Ответов: 1

Dllnotfoundeeption во время выполнения DLL-библиотеки C++ в C#


я просто пытаюсь сделать dll из этой ссылки, Как создать библиотеку DLL на C, а затем использовать ее с C#[^], это действительно работает

но потом, когда я пытаюсь сделать dll-ссылку с mysql
я получил сообщение об ошибке "DllNotFoundException was unhandled"..

нужно, чтобы кто-то помог поблагодарить вас..

Что я уже пробовал:

это код в моем коде cpp (dll)

#pragma once
#pragma comment (lib, "libmysql")

#include <iostream>
#include "C:\BookScanner\extension\MySQL-API\include\mysql.h"

MYSQL *__con, *__conString;

extern "C"
{
	__declspec(dllexport) void openConnection(){
		__con = mysql_init(NULL);
		__conString = mysql_real_connect(__con, "localhost", "root", "", "bookbardatabase", 3306, NULL, 0);
		std::cout << __conString ? "successfully connected" : "failed to connect to server";
	}
}


это код на c#, который я использовал для запуска своего dll-файла

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
    class Program
    {
        [DllImport("C:\\Users\\user\\Desktop\\MyysqConnector\\Debug\\MyysqConnector.dll")]
        public static extern void DisplayHelloFromDLL();

        static void Main(string[] args)
        {
            DisplayHelloFromDLL();
            Console.ReadLine();
        }
    }
}

Mehdi Gholam

Убедитесь, что DLL и все зависимые DLL-файлы находятся рядом с вашим EXE-файлом.

Richard MacCutchan

Вы уверены, что имя библиотеки dll правильно? Кроме того, где находится код для DisplayHelloFromDLL?

Richard MacCutchan

Очень просто я предлагаю MyysqConnector.dll это не правильное написание имени файла dll.

1 Ответов

Рейтинг:
1

KarstenK

Это очевидно, что dll отсутствует. Наиболее распространенной причиной является то, что необходимая dll не установлена или не находится в рабочем каталоге запущенного exe-файла. Поэтому посмотрите, где находится ваш exe-файл, и скопируйте отсутствующую dll в каталог.

Мне нравится старый добрый ходок зависимости для таких вопросов.


Richard MacCutchan

Смотрите мой последний комментарий.