我正在使用VS 2012:
这是我的情况:
我在visual basic中编写了一些代码,它调用了我用C ++编写的dll函数(也使用vs 2012编写)。我的函数的一个参数采用wchar_t *数据类型,因此我需要使用StrPtr从vb格式化我的字符串。
这是我的问题:
Visual Basic不会将StrPtr识别为函数。我得到:'StrPtr'没有声明。由于其保护级别,它可能无法访问。'
这是什么意思?
答案 0 :(得分:2)
StrPtr
是VB6函数,它不是exist in VB.Net
VarPtr,VarPtrArray,VarPtrStringArray,ObjPtr和StrPtr分别是 用于获取底层内存地址的未记录函数 变量。 Visual Basic .NET不支持这些函数。
宽字符串的等效.Net Framework方法是Marshal.StringToHGlobalUni()。
虽然您可能应该使用P/Invoke来调用C ++函数,但在这种情况下会自动处理String
到wchar_t
的编组。
答案 1 :(得分:1)
此关键字已为removed from the language:
VarPtr,VarPtrArray,VarPtrStringArray,ObjPtr和StrPtr是 用于获取底层内存地址的未记录函数 变量。 Visual Basic 2008不支持这些功能。