在Silverlight中使用自定义DLL

时间:2012-03-21 13:55:56

标签: vb.net silverlight silverlight-5.0

我正在测试并尝试了解如何在Silverlight项目中创建DLL并从中调用函数。我得到一个例外:无法在DLL'C:\ temp \ TestDLL.dll'中找到名为'WriteTextFile'的入口点。所以我做错了什么。

这是我非常简单的DLL的代码:

Imports System.IO

Public Class Class1

    Private Shared dir As String = "C:\TEMP"
    Private Shared file As String = "TestDLL.txt"

    Public Shared Sub WriteTextFile()
        Using wr As New StreamWriter(System.IO.Path.Combine(dir, file))
            wr.WriteLine("Call to function WriteTextFile()")
        End Using
    End Sub

End Class

这就是我在Silverlight中所做的事情:

Imports System.Runtime.InteropServices


Partial Public Class MainPage
    Inherits UserControl

    <DllImport("C:\temp\TestDLL.dll")> _
    <AllowReversePInvokeCalls()> _
    Friend Shared Sub WriteTextFile()
    End Sub

    Public Sub New()
        InitializeComponent()
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
        WriteTextFile()
    End Sub

End Class

我需要一些指向正确的方向:)

AllowReversePInvokeCalls部分是我在网上做一些阅读之后尝试过的,但它没有改变任何东西。我也尝试在DLLImport中设置EntryPoint,但这也没有做任何事情。

编辑:

我在常规WPF应用程序中尝试了此DLL和pinvoke,但我得到了相同的错误,因此这与Silverligth无关。也许在我的DLL中呢?

1 个答案:

答案 0 :(得分:0)

好的,所以看起来这样做不能简单,因为使用pinvoke需要一个标准的dll而我不能用VB .NET做那些。所以我需要尝试别的东西:)

如果有人有关于此的更多信息并希望分享它,我将不胜感激。如果我理解错误的话,请纠正我。