我正在 P/Invoking 来自托管 VB.NET 的非托管 C++ 代码。
我的代码:
Imports System.Runtime.InteropServices
#Const MyLibPath = "mylib.dll"
Namespace MyLib
Class A
<DllImport(MyLibPath)> _
Public Shared Sub foo()
End Sub
End Class
End Namespace
我得到错误:
未声明名称“MyLibPath”
的filename
参数DllImport
应该是恒定的,那么为什么我不能使用#Const
?
另一种方法是编写一个字符串文字,或者将文件名存储在一个Private Const
变量中,但是当我有多个DllImport
s 用于跨不同类的同一个 DLL 时,这会变得重复。我真的只想要一个常数。