c++ - 未找到 UInt32x32To64 标识符

标签 c++ visual-studio com

我正在使用 C++ 进行编码,并且正在使用

导入 C# 类库
#import "C:\abc\abc.tlb" 
using namespace XYZ;

当我这样做时,我在文件 comutil.h 中收到一个错误 错误是 未找到 UInt32x32To64 标识符。我不知道我在尝试导入 tlb 文件时得到了这个。 谁能帮我解决这个问题? 这是 comutil.h 的部分

static HRESULT UIntMult(UINT uMultiplicand, UINT uMultiplier, UINT *puResult)
{
    ULONGLONG ull64Result = UInt32x32To64(uMultiplicand, uMultiplier);
    if(ull64Result <= INTSAFE_UINT_MAX)
    {
        *puResult = (UINT)ull64Result;
        return S_OK;
    }
    return INTSAFE_E_ARITHMETIC_OVERFLOW;
}

谢谢

最佳答案

UInt32x32To64() 是在 Windows 头文件中定义的宏。你需要 #include <Windows.h>访问它。


Hans 的评论是正确的。如果你有 HRESULTUINT那么大概你有Windows.h .在这种情况下,缺少宏可能是因为尚未定义体系结构条件。

关于c++ - 未找到 UInt32x32To64 标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7241490/

相关文章:

javascript - TypeScript 无法解析文件

c# - 是否可以在运行时更改 WebReference 的属性?

c# - 在 asp.net webservice 中调用 COM DLL 时出错

c++ - 当类具有原子成员时更短的 move 构造函数

c++ - 为什么 opengl 着色器没有编译?

visual-studio - Visual Studio 2008 菜单项重复

c# - 从通过模态 WinForms 调用的 C++ 调用 IConnectionPointImpl 接口(interface)时出现问题

c# - 从非托管代码 : SAFEARRAY 调用托管 COM

c++ - 在没有 const_cast 的情况下修改 *this 的 const 方法

c++ - 类(class)友元——一个谜