C++ で作成されたネイティブ DLL を 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();
}
}
}
}
DLL の main.h は次のとおりです。
#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__
次に、DLL の main.cpp を次に示します。
#include "main.h"
#include<windows.h>
void SayHi()
{
MessageBox(HWND_DESKTOP, "Hello!", "Hello!", 0);
}
そのため、system32 に配置して DLL にアクセスしようとした後、それをコピーしてビジュアル c# に貼り付けてプロジェクトに追加しようとしましたが、これまでのところ成功していません。うまくいかなかったことにちょっとがっかりしましたが、誰が知っていますか。