新建一个silverlight 5 beta 项目,勾选在浏览器内运行是需要提升的信任
将测试dll放到 C:\Windows\System32 目录
MainPage中放置一个按钮,用来测试dll文件是否调用成功,代码如下:
public partial class MainPage : UserControl
{
[DllImport("DllTest.dll", EntryPoint = "add", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = false)]
public static extern int add(int x, int y);
public MainPage()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
var Val = add(3, 5);
MessageBox.Show(Val.ToString());
}
}
可以得到期望的结果
如果我在sl项目的属性中勾选(允许在浏览器外运行应用程序),然后取消,然后再保存,运行程序,点击按钮后,会报错:
安全透明方法“SlDllTestNew.MainPage.Button_Click(System.Object, System.Windows.RoutedEventArgs)”尝试通过方法“SlDllTestNew.MainPage.add(Int32, Int32)”调用本机代码失败。方法必须是安全关键或安全可靠关键,才能调用本机代码。
期待大神出现帮我解答!!!谢谢