Windows Phone 7 C#错误尝试调用函数失败

时间:2011-04-26 20:19:34

标签: c# windows-phone-7

我正在c#Windows Phone 7中编写测试项目“HelloPhone”,我正在尝试使用 一个C ++ DLL / clr。在执行时,我得到一个未处理的异常错误报告该尝试 调用DLL函数失败。我不是C#程序员,所以这是我的代码:

using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Tasks;
using Microsoft.Phone;
using DldesAPI;
using System.Runtime.InteropServices;

namespace DldesAPI
{
    public class DldesLib
    {

      [DllImport("DLDESLIB.dll", CharSet = CharSet.Auto)]
      public static extern int GetVersionNumber();

 //       [DllImport("DLDESLIB.dll")]
 //       public static extern int EncryptFirst(byte *pSrc,int SrcLen,byte *pDst,byte *pKey,int iKLen,long *wa,bool bRand);
    }
}

namespace HelloPhone
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();
        }

        private void ClickMeButton_Click(object sender, RoutedEventArgs e)
        {


            int x = 0;
            string Msg;
            Msg=MessageTextBox.Text;

            x = 1;
            x = DldesLib.GetVersionNumber(); 





        }
    }
}

你能告诉我我做错了吗?

谢谢你。 施皮罗斯

3 个答案:

答案 0 :(得分:2)

您可能不会太高兴听到这个消息,但在Windows Phone 7中using p/invoke or a C++/CLR DLL is not supported

答案 1 :(得分:0)

您是要尝试获取DeviceFirmwareVersion还是DeviceHardwareVersion?你能用到:

DeviceExtendedProperties.GetValue("DeviceFirmwareVersion").ToString();

http://msdn.microsoft.com/en-us/library/ff941122(v=VS.92).aspx

答案 2 :(得分:0)

是的,在WP7上可能不支持这种东西(据我所知):

使用System.Runtime.InteropServices;

[DllImport("DLDESLIB.dll", CharSet = CharSet.Auto)]

它运行在.net框架的紧凑版本上。