次のページのチュートリアルに従って C++ DLL を作成し、System32 フォルダーに配置しました: http://msdn.microsoft.com/en-us/library/ms235636%28v=vs.80%29。 aspx。PC のどこからでも .exe を実行できます。ここで、VB.NET アプリケーションから Add を呼び出せるようにしたいので、次のコードを追加しました。
Imports System.Runtime.InteropServices
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
Dim Test As Integer
Test = Add(1, 1)
MsgBox(Test)
Catch ex As Exception
End Try
End Sub
<DllImport("MathFuncsDll.dll", EntryPoint:="Add", SetLastError:=True, CharSet:=CharSet.Ansi)> _
Private Shared Function Add(ByVal a As Double, ByVal B As Double) As Double
End Function
End Class
次のエラーが表示されます: DLL 'MathFuncsDll.dll で 'Add' という名前のエントリ ポイントが見つかりません。これは名前空間が原因だと思います。私はこれを調査しましたが、一部の Web ページでは、Platform Invoke では名前空間が許可されていないと述べており、一部の Web ページでは許可されていると述べられています。何が問題ですか?