我是P /從託管VB.NET調用非託管C++代碼。我可以不提供文件名作爲編譯時常量的DllImport嗎?
我的代碼:
Imports System.Runtime.InteropServices
#Const MyLibPath = "mylib.dll"
Namespace MyLib
Class A
<DllImport(MyLibPath)> _
Public Shared Sub foo()
End Sub
End Class
End Namespace
我得到的錯誤:
Name 'MyLibPath' not declared
的filename
參數DllImport
應該是恆定的,所以我爲什麼不能用#Const
?
另一種方法是編寫一個字符串字面值,或將該文件名存儲在Private Const
變量中,但對於跨不同類的相同DLL分佈的DllImport
個數,這會變得重複。我真的只想要一個恆定的。
你在混合Const和#Const。 VB.NET沒有預處理器來替代像C這樣的標識符。 #Const僅在#If表達式中可用。改用Const。 –