替换SQLHANDLE的类型定义,而不是void *
Relacement type defination for SQLHANDLE instead of void *
对于64位Windows和odbc版本> 3.0, sqltypes.h
定义SQLHANDLE为
#if defined(WIN32) || defined(_WIN64)
typedef void* SQLHANDLE;
#else
如果您需要通过COM
封送该变量[id(1)] HRESULT SQLAllocHandle([in] SQLSMALLINT HandleType, [in] SQLHANDLE InputHandle, [out] SQLHANDLE* OutputHandle, [out,retval] SQLRETURN* rc);
你会收到一个编译错误
error MIDL2139: type of the parameter cannot derive from void or void *
我在这个场景中可以使用的SQLHANDLE的合适替代类型是什么?
通过COM传递任何类型的HANDLE
(无论是HWND
还是其他类型)的常用技术是将其强制转换为long
在本例中,由于使用ATL,我将SQLHANDLE重新定义为OLE_HANDLE。这在客户端和服务器进程之间实现了透明的同步。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 在c++类上调用void函数
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- 在派生函数中指定void*参数
- C++为什么尽管我调用了void函数,它却不起作用
- 如何从void函数输出字符串
- 我应该使用什么来代替void作为变体中的替代类型之一
- 奇怪的结构&GCC&clang(void*返回类型)
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 引用一个已擦除类型(void*)的指针
- 将尾部调用void(i32,..)位转换为llvm::函数以获取FnAttribute
- 库函数需要一个 std::function<void(void)>,如何传入类函数?
- 如何将指针从一个void函数传递到另一个C++
- 为什么我在使用void函数时得到错误代码C2276
- void*到驱动程序中的UnicodeString
- 为什么在逗号分隔符上下文中将预增量的结果强制转换为void
- 指针没有更新它在void函数内部指向的值
- 不能将 "void *" 类型的值分配给类型 "TCHAR" 的实体
- 替换SQLHANDLE的类型定义,而不是void *