none
c# 如何用c++6.0 做的API RRS feed

解答

  • 前面不都已經說了嗎?

    把要匯出的函數匯出來,然後再用 C# DllImport 來匯入:

    #define DllImport   __declspec( dllimport )
    #define DllExport   __declspec( dllexport )
    
    DllExport void func();
    DllExport int i = 10;
    DllExport int j;
    DllExport int n;
    2007年3月13日 上午 07:08
    版主

所有回覆

  • 1. 找不到進入點表示 API 沒有開放 (Export),或者是該 DLL 並沒有這個函數。

    2. 多餘的符號和情緒符號無助於解釋問題。

    2007年3月13日 上午 05:45
    版主
  • 感謝您的回覆!!

    還是不太懂耶!!我是要用vc2005 c# 做一個ap for WINCE5.0 ;但是API 是在VC6.0下編輯的MFC DLL ;

    在c++中.h 程式使用如下:

    class __declspec(dllexport) UsbAPI 
    {

    public:
     void setErrmsg(char *str);
     void setErrNo(int err);

    }

    在c#程式使用如下:

    public class UsbAPI

    {

    [DllImport("USBAPI.dll")]

    pulice static extern  void setErrmsg(char *str);

    DllImport("USBAPI.dll")]
    pulice static extern  void setErrNo(int err)

    }

    可編輯成功;程式執行後呼叫到API時出現問題訊息"找不到USBAPI.DLL中setErrmsg ()進入點"!!

    是有哪裡有問題嗎??

     

     

     

    2007年3月13日 上午 06:19
  • C# 的 DllImport 不支援匯出類別,你只能明確指定匯出函數,匯出整個類別對 C# 來說是沒有用的 ...
    2007年3月13日 上午 06:46
    版主
  • sorry! 我是新手

    那該用捨麼方法在c#用c++的api呢

    2007年3月13日 上午 06:54
  • 前面不都已經說了嗎?

    把要匯出的函數匯出來,然後再用 C# DllImport 來匯入:

    #define DllImport   __declspec( dllimport )
    #define DllExport   __declspec( dllexport )
    
    DllExport void func();
    DllExport int i = 10;
    DllExport int j;
    DllExport int n;
    2007年3月13日 上午 07:08
    版主
  • 感謝小朱大大的回答!!

    我試試看!!

     

    2007年3月13日 上午 07:13