使用的工具是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