我正在使用VS 2012:

这是我的情况:

我正在用Visual Basic编写一些代码,这些代码调用我用C ++编写的dll函数(也使用vs 2012编写)。函数的参数之一采用wchar_t *数据类型,因此我需要使用StrPtr从vb相应地格式化字符串。

这是我的问题:

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

这是什么意思?

最佳答案

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


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


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

尽管您可能应该使用P/Invoke来调用C ++函数,在这种情况下,会自动处理Stringwchar_t的封送处理。

关于c++ - 在Visual Basic(VS 2012)中无法识别StrPtr吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19074008/

10-10 14:47