c#.net2005 调用evc4.0生成的dll文件
又好久沒(méi)有寫(xiě)博客了,這一段時(shí)間一直在做東西,碰到了一些問(wèn)題并解決掉了,所以把它寫(xiě)出來(lái)。寫(xiě)程序時(shí)碰到的第一個(gè)問(wèn)題就是用c#.net2005 調(diào)用evc4.0生成的dll文件。
首先,在調(diào)用自己寫(xiě)的dll時(shí),一定格式要正確,也就是這樣的:
在*.h文件中加入
extern "C" __declspec(dllexport) int? MyFunction(void);
在*.cpp文件中加入
__declspec(dllexport) int MyFunction(void)
{
??? // 在此處添加實(shí)現(xiàn)代碼
??? return 12;
}
在*.edf文件中加入
EXPORTS
?? MyFunction??
?其次,在生成dll文件時(shí),選定正確的平臺(tái),也就是pocketpc2003,win32 AMR4I,因?yàn)镃#是pocketpc2003或windows mobile 5.0的,并且C#2005的模擬器是支持各種架構(gòu)的,不像以前的模擬器只支持x86。也就是說(shuō)如果ppc device是x86的,也可以在編譯時(shí),選擇x86。
最后,就可以將編譯好的dll文件,加入到C#工程的debug文件夾下。
1。將加入的dlll文件add到工程中,并將屬性改為copy always。
2。在調(diào)用dll文件的*cs文件中加入命名空間System.Runtime.InteropServices;
3。調(diào)用格式為:
? [DllImport("Test.dll")]
??????? extern static int MyFunction(void);
在[DllImport("*.dll")]中還有一些參數(shù),可按需要加入。
注:
在調(diào)用dll文件后在模擬器或Device上運(yùn)行時(shí)會(huì)出現(xiàn)一些錯(cuò)誤信息,這些錯(cuò)誤的含義是:
Missing Method Exception 是C#沒(méi)有找到該dll文件的入口。
No Support Exception是在調(diào)用dll文件時(shí),沒(méi)有使用正確的數(shù)據(jù)類(lèi)型轉(zhuǎn)換。
轉(zhuǎn)載于:https://www.cnblogs.com/randylee/archive/2006/09/24/513126.html
總結(jié)
以上是生活随笔為你收集整理的c#.net2005 调用evc4.0生成的dll文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 串口通信接线方法
- 下一篇: Effective C# 原则50:了解