Использование собственной библиотеки DLL в Silverlight - PullRequest
0 голосов
/ 21 марта 2012

Я тестирую и пытаюсь понять, как создать DLL и вызвать функцию из нее в моем проекте Silverlight. Я получаю исключение: не удается найти точку входа с именем «WriteTextFile» в DLL «C: \ temp \ TestDLL.dll». Так что я делаю что-то не так.

Вот мой код для очень простой 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 - это то, что я попробовал после прочтения в Интернете, но это ничего не изменило. Также я попытался установить EntryPoint в DLLImport, но он тоже ничего не делает.

Edit:

Я попробовал эту DLL и pinvoke в обычном приложении WPF, и я получаю ту же ошибку, так что это не связано с Silverligth. Может быть, тогда в моей DLL?

1 Ответ

0 голосов
/ 22 марта 2012

Хорошо, похоже, этого нельзя сделать просто потому, что для использования pinvoke требуется стандартная библиотека DLL, а я не могу сделать это с VB .NET.Так что мне нужно попробовать что-то еще:)

Если у кого-то есть дополнительная информация об этом и он хотел бы поделиться ею, я был бы признателен.Или поправьте меня, если я неправильно понял вопрос.

...