私はC++dllインポートトピックの初心者で、質問は非常に簡単かもしれませんが、Googleで見つけることができません。
私は非常に単純なC++win32 dllを持っています:
#include <iostream>
using namespace std;
extern "C"
{
__declspec(dllexport) void __stdcall DisplayHellowFromDLL()
{
cout<<"Hi"<<endl;
}
}
このメソッドをC#から呼び出すと、問題はありません。ここにC#コードがあります。
namespace UnmanagedTester
{
class Program
{
[DllImport(@"C:\CGlobalDll")]
public static extern void DisplayHellowFromDLL();
static void Main(string[] args)
{
Console.WriteLine("This is C# program");
DisplayHellowFromDLL();
}
}
}
予想どおり、出力は「これはC#プログラムです」「こんにちは」です。
ここで、C関数の宣言を次のように変更するとします。
__declspec(dllexport) void DisplayHellowFromDLL()
__stdcallがなければ、私も問題はありません。問題は次のとおりです。
__declspec(dllexport)TYPE __stdcallが本当に必要なのはいつですか?また、__ declspec(dllexport)TYPEのみを使用できるのはいつですか?
どうもありがとう。