如果要向API 函数传递一个结构指针。
假如默认结构如下,
typedef struct {
WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
WORD cbSize;
} WAVEFORMATEX
假如我传给该API的结构中做了如下改动。把第一个数据类型改为DWORD.
那么会不会出现错误,或则是有其他的异常。
(主要是我在.net 下面调用类似API 时候的时候出现了,该问题)
假如默认结构如下,
typedef struct {
WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
WORD cbSize;
} WAVEFORMATEX
假如我传给该API的结构中做了如下改动。把第一个数据类型改为DWORD.
那么会不会出现错误,或则是有其他的异常。
(主要是我在.net 下面调用类似API 时候的时候出现了,该问题)
会出项warning!告诉数据截断!
只是返回的数据有问题.
现在假设结构中都是要求的是int类型,我穿给他都是SHORT类型的话,也出现了每有问题.之要把发挥值得中间的数据,每个相对于就够地址的偏移量不变就没有问题,但是在64位上就出现了问题.估计以前不支持64位的数据.