在Windows Mobile中使用Desktop C#DLL

时间:2009-11-25 12:00:00

标签: c# .net windows-mobile compact-framework

我的查询很小,在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

5 个答案:

答案 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

来源:

http://social.msdn.microsoft.com/Forums/en-US/windowsmobiledev/thread/98e60ab6-aecf-4399-a5be-4937ec40aac9