#define、EntryPoint

更改保留字-#define
#define 取代保留字名稱 要取代之保留字
像是#define Dll_Out _declspec(dllexport) 便是將_declspec(dllexport) 以 Dll_out取代

以前篇"visual studio 2005 c++製作dll (for C#)"為例
***************************************************
//原code
extern "C" _declspec(dllexport) int plus(int);
int _declspec(dllexport) plus(int a)
{
int b = a+a;
return b;
}
--------------------------------------------------------------------------
//更改後
#define  ECD extern "C" _declspec(dllexport)
ECD int plus(int);
int _declspec(dllexport) plus(int a)
{
int v  = a+ a;
return v;
}
****************************************************
將原DLL中方法以不同名稱使用-EntryPoint
EntryPoint = "方法名稱"
static extern int 新方法名稱(資料型態 資料變數);
以前篇"C#中導入DLL"為例
-----------------------------------------------------------
//原code
  static void Main(string[] args)
        {
           int add = plus(4);
              Console.WriteLine(add);
            Console.ReadKey();
        }
        [DllImport("CproDll.dll")]
        static extern int plus(int a);
*********************************************
//更改後
static void Main(string[] args)
        {
            int add = adding(4);
            Console.WriteLine(add);
            Console.ReadKey();
        }
 [DllImport("CproDll.dll", EntryPoint = "plus")]
        static extern int adding(int a);

留言

這個網誌中的熱門文章

SQL SEVER備份與還原遭遇問題

asp.net頁面間傳值