我正在测试并尝试了解如何在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中呢?
答案 0 :(得分:0)
好的,所以看起来这样做不能简单,因为使用pinvoke需要一个标准的dll而我不能用VB .NET做那些。所以我需要尝试别的东西:)
如果有人有关于此的更多信息并希望分享它,我将不胜感激。如果我理解错误的话,请纠正我。