为什么我可以在需要 Long 类型的参数时传递 Integer?
Why can I pass an Integer when a param of type Long is expected?
我有一个围绕本机代码 dll 的适配器 class。那个是用 x64 构建的——整数是 8 个字节。我使用以下签名:
Private Declare Sub RoutineName64 Lib "MyDll" Alias "_RoutineAlias" (param1 As Long, ... )
令我惊讶的是,我仍然可以将整数作为参数 1 传递,没有任何问题,无论是编译时还是运行时。我不知道该如何解释?
我认为执行 Dim variableLong = Convert.ToInt64(variable)
然后使用该变量调用 RoutineName64
作为 param1
是强制性的吗?
我有一个围绕本机代码 dll 的适配器 class。那个是用 x64 构建的——整数是 8 个字节。我使用以下签名:
Private Declare Sub RoutineName64 Lib "MyDll" Alias "_RoutineAlias" (param1 As Long, ... )
令我惊讶的是,我仍然可以将整数作为参数 1 传递,没有任何问题,无论是编译时还是运行时。我不知道该如何解释?
我认为执行 Dim variableLong = Convert.ToInt64(variable)
然后使用该变量调用 RoutineName64
作为 param1
是强制性的吗?