使用的工具是VS2010哦~其他工具暫時還沒試過
我新建的工程名是my21dll,所以會生成2個同名文件。接下來需要改動的只有畫橫線的部分
下面是my21dll.h里面的。。。
下面的1是自動生成的不用動,或者也可以不要,因為只是一個宏而已下面可以做相應修改。
下面的2是自動生成的類,我沒用就注釋掉了
下面的3是自動生成的一個測試函數,原來函數最前面是extern,記住精髓是要改成EXTERN_C
下面的4是我自己寫的一個測試函數,用來求和
下面是my21dll.cpp里面的
號3對應上面號3的函數,號4對應上面號4對應的函數。
下面要修改工程的屬性
下面是生成dll,兩個紅線的都可以
然后就可以在DeBug文件夾下看到dll了(~ ̄▽ ̄)~
再創建一個c#的控制台程序調用看看吧
我那是兩個分開的函數,所以每一個都要寫一個DllImport和extern static來聲明,然后下面就可以像調用普通函數一樣調用了。
<( ̄ˇ ̄)/
輸出
后來我又測試了一下,假如c#中調用的c++函數里調用了c++里的其他函數,里面套用的那些函數也需要聲明嗎?
我先把.h里面的fnmy21dll()注釋掉
又把.cpp文件里函數做了相應修改
c#的函數也只聲明了Add函數,看看行不行~
結果,沒問題,成功了,說明只要最終在c#中顯示出來的函數進行了聲明就可以了,而且那些被調用的函數也可以像普通函數那樣去寫,只有不要export的函數寫上輸出的聲明就可以了(^-^)V
