我的查询很小,在windows mobile中使用Desktop c#应用程序DLL是否需要修改?我遇到像File or assembly name 'Interop.CDO, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null', or one of its dependencies, was not found.
这样的问题。
我有桌面DLL的源代码,我不知道我需要做什么组装修改才能使用mobile.please让我解决..
提前致谢 Grabit
答案 0 :(得分:2)
将源代码编译为移动dll文件。
您可以在桌面上使用移动dll文件,在安装了紧凑框架时使用。(请参阅ctacke的评论,了解原因)
答案 1 :(得分:1)
您无法在移动设备上使用CDO。下面的“goo”并不存在,所以即使你以某种方式重新编译了设备(我怀疑你无论如何都可以做到),它仍然对你没有好处。如何告诉我们你要解决的问题,而不是你已经(错误地)决定解决它。
答案 2 :(得分:0)
您收到的错误消息表明DLL不存在。
如果你遇到了这个障碍,你仍然没有回家和软管 - CDO与Outlook / Exchange有关,所以很可能只是透明地工作。
答案 3 :(得分:0)
您可以验证移动平台上是否有Interop.CDO
可用吗?或者它与移动环境兼容
答案 4 :(得分:0)
使用C ++ for Windows Mobile创建DLL的步骤:
1)文件>新>项目...> Visual C ++>智能设备> Win32智能设备项目
2)写下项目名称,然后单击“确定”。
3)接下来>插入所需的SDK(如WM5和WM6)>下一个>点击DLL>完成
4)右键单击Source文件夹,然后选择Add>新
5)找到.df文件名,它与dll名称相同,然后单击OK。
现在在def你需要写这样的东西:
LIBRARY "dllName"
EXPORTS
exactFunctionName1 DATA
exactFunctionName2 DATA
In dllName.cpp You need to add those two methods (exactFunctionName1, exactFunctionName2) and write code for them.
You don't need to state more then a method names in def (plus <tab><tab>DATA next to name).
Where to place the DLL after builiding to make use of it in my C# project
It must be placed next to Your app or in Windows folder of Your device.
To get methods from that library just do the following in C#:
using System.Runtime.InteropServices;
[DllImport("dllName.dll")]
private static extern anyReturnType exactFunctionName1(anyArgumentType argumentName);
So as an example let's get arithmethic sum form myMath.dll:
[DllImport("myMath.dll")]
private static extern int sum(int first, int second);
Those methods can be also public but they still require "static extern".
Following example in C++ side You'll have this:
In myMath.cpp:
INT sum(INT first, INT second)
{
return first + second;
}
In myMath.def:
LIBRARY "myMath"
EXPORTS
sum DATA
来源: