我正在使用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 ++函数,在这种情况下,会自动处理String
到wchar_t
的封送处理。
关于c++ - 在Visual Basic(VS 2012)中无法识别StrPtr吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19074008/