我已經按照下面的頁面上的教程來創建一個c + + DLL,我已經把它放在System32文件夾中:http://msdn.microsoft.com/en-us/library/ms235636%28v=vs.80%29.aspx。我可以在PC上的任何地方運行.exe。現在,我希望能夠調用添加從VB.NET應用程序,所以我已經添加以下代碼:Visual C++託管應用程序:無法找到名爲「添加」的入口點
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。我相信這是因爲命名空間。我已經研究過這個,有些網頁說平臺調用不允許命名空間,有些網頁說它們是允許的。問題是什麼?
謝謝。 +1用於引用dumpbin.exe。我已經完成了你的建議,現在的錯誤是:「WindowsApplication1.Form1 :: Add'已經失去了堆棧,這可能是因爲託管的PInvoke簽名與非託管目標籤名不匹配,請檢查調用約定和參數PInvoke「 – w0051977
幾乎在那裏,調用約定不是__stdcall。發佈更正。 –
感謝您的糾正。 – w0051977