c # — & quot; DLLNotFoundException & quot ;?

Я пытаюсь импортировать нативную DLL, созданную в C ++, в C #. У меня небольшая проблема.

Вот мой код C #:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace test
{
class Program
{
[DllImport("hello2dll.dll")] //I didn't know what to name it :'(
private static extern void SayHi();

static void Main(string[] args)
{
while (true)
{
Console.ReadKey();
SayHi();
}
}
}
}

Вот main.h из DLL:

#ifndef __MAIN_H__
#define __MAIN_H__

#include <windows.h>

/*  To use this exported function of dll, include this header
*  in your project.
*/

#ifdef BUILD_DLL
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif#ifdef __cplusplus
extern "C"{
#endif

void DLL_EXPORT SayHi();

#ifdef __cplusplus
}
#endif

#endif // __MAIN_H__

А затем вот main.cpp из DLL:

#include "main.h"
#include<windows.h>

void SayHi()
{
MessageBox(HWND_DESKTOP, "Hello!", "Hello!", 0);
}

Поэтому я попытался получить доступ к DLL, поместив ее в system32, а затем попытался добавить ее в проект, скопировав и вставив ее в визуальный c #, но пока у меня нет успеха. Я немного разочарован тем, что это не сработало, но кто знает.

0

Решение

Я не знаю, почему это терпит неудачу, скорее, я бы создал CLR-совместимую сборку

Вы можете создать CLR-совместимую сборку, используя tblimp тогда вы можете добавить ссылку на сборку, а не импортировать ее.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]