存储在 int 中的指针
Pointer stored in int
我有函数getMemory(),它返回VARIANT (mfc)。据说在ulVal成员是我需要访问的内存的指针。
int m_memAddr = object.getMemory().ulVal; //get pointer to memory
然后我需要将此指针转换为字符*我试过了
char* pointer = (char*)m_memAddr;
它可以编译,但在程序运行时出现错误。如何调试?
函数获取内存:
VARIANT object::getMemory()
{
VARIANT result;
InvokeHelper(0x4a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
return result;
}
编辑自我使用的相机库的文档:
VARIANT GetImageMem()描述
GetImageMem() 返回指向存储图像的内部图像存储器的起始地址的指针。如果使用环形缓冲,GetImageMem() 将返回上次用于图像捕获的图像内存的起始地址。
指向图像内存的指针在 VARIANT 数据类型的元素 ulVal 中返回。参数
返回值
指向 VARIANT 数据类型的 ulVal 中的图像内存的指针。
这是函数的描述,它返回我的相机存储图像的内存。
我想用OpenCV处理这个图像,所以我需要char*来将其设置为IplImage imageData。
现在我希望更清楚问题是什么。
来自文档
pbParamInfo - 指向以 null 结尾的字节字符串的指针,该字符串指定 pbParamInfo后面的参数类型。
... - 参数的变量列表,在pbParamInfo中指定的类型。
您正在为 pbParamInfo
传递 NULL,我认为这意味着返回的变体中不会存储任何数据,因此指针当然是无效的。
如果您进一步遵循文档,您会发现传递 VTS_BSTR
指定您可以使用指向字符的指针初始化变体(将其作为 pbParamInformation 之后的下一个参数传递)。
相关文章:
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 指针问题:从不兼容的类型"int"分配给"int *"
- 运行时错误:引用绑定到类型为"int"的空指针
- C++:将值 int(例如:0x00AAFAD8)转换为指针(指针本身也是 0x00AAFAD8 值)
- 如何将 int 指针转换为浮点指针
- 使用 int 指针的浮点数的位表示形式
- C++:使用没有位移位的指针将无符号字符转换为无符号 int
- 从类指针到 int 的转换无效
- f 是指向函数的指针,该函数采用 int,并返回指向不带任何内容并返回双精度的函数的指针
- 如何使用静态多态性在 int 和指针类型之间进行转换?
- 为什么当我尝试将char输入到int时,文件指针会卡住
- 类型别名允许分配任意指针,尽管 int* 是必需的
- 为什么 fdump-class-hierarchy 为虚函数提供了两个指针 int vtable
- 双指针 (int**) 和双括号,用于从 2D 数组中获取值
- (C++)通过指针递增,或者:为什么这不起作用?指针->int = 指针->int+1;
- (c++)将int转换为char指针(int是int形式的字符)
- 如何使用指针到指针 (int **) 分配一维数组
- 删除地图中的指针<int,A*>
- 如何将字符串内存地址(如 "7fefe05a8")存储在 C++ 中的指针/int 变量中,以便我可以对其进行位屏蔽?
- 指向包含向量问题的实例类的指针<int>