首页 > 解决方案 > 当需要 Long 类型的参数时,为什么我可以传递 Integer?

问题描述

我有一个围绕本机代码 dll 的适配器类。那个是用 x64 构建的——整数是 8 个字节。我使用以下签名:

Private Declare Sub RoutineName64 Lib "MyDll" Alias "_RoutineAlias" (param1 As Long, ... )

令我惊讶的是,我仍然可以将 Integer 作为 param1 传递,没有任何问题,无论是编译时间还是运行时。我不知道如何解释?

我认为这样做Dim variableLong = Convert.ToInt64(variable)然后调用RoutineName64该变量param1是强制性的吗?

标签: .netvb.netinterop

解决方案


请参阅扩大和缩小转换


推荐阅读