llMulDiv 函数
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
函数 llMulDiv
实现公式 ((a*b)+rnd)/c
,其中每个字词都是一个 64 位值。
时间戳和查找时间是 64 位值,因此此函数可用于在 32 位系统上执行转换。 例如,每秒字节数的公式为
(Number of Bytes * Reference Time) / 10,000,000
这可以计算为 llMulDiv(nBytes, rtTime, 10000000, 0)
。 使用 rnd 参数作为舍入因子。
语法
LONGLONG WINAPI Int64x32Div32(
LONGLONG a,
LONGLONG b,
LONGLONG c,
LONGLONG rnd
);
参数
-
a
-
乘法。
-
b
-
乘法器。
-
c
-
因子。
-
rnd
-
舍入因子。
返回值
返回 (a * b + rnd)/c
计算或以下值之一。
返回代码 | 说明 |
---|---|
|
发生溢出是因为结果太大 (正) 。 |
|
发生溢出是因为结果太大 (负) 。 |
备注
对除法进行舍入是接近零。 除以零算作溢出条件。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅