StrPtr在visual basic(VS 2012)中无法识别?

时间:2013-09-29 03:11:07

标签: c++ vb.net visual-studio-2012

我正在使用VS 2012:

这是我的情况:

我在visual basic中编写了一些代码,它调用了我用C ++编写的dll函数(也使用vs 2012编写)。我的函数的一个参数采用wchar_t *数据类型,因此我需要使用StrPtr从vb格式化我的字符串。

这是我的问题:

Visual Basic不会将StrPtr识别为函数。我得到:'StrPtr'没有声明。由于其保护级别,它可能无法访问。'

这是什么意思?

2 个答案:

答案 0 :(得分:2)

StrPtr是VB6函数,它不是exist in VB.Net

  

VarPtr,VarPtrArray,VarPtrStringArray,ObjPtr和StrPtr分别是   用于获取底层内存地址的未记录函数   变量。 Visual Basic .NET不支持这些函数。

宽字符串的等效.Net Framework方法是Marshal.StringToHGlobalUni()

虽然您可能应该使用P/Invoke来调用C ++函数,但在这种情况下会自动处理Stringwchar_t的编组。

答案 1 :(得分:1)

此关键字已为removed from the language

  

VarPtr,VarPtrArray,VarPtrStringArray,ObjPtr和StrPtr是   用于获取底层内存地址的未记录函数   变量。 Visual Basic 2008不支持这些功能。