【问题标题】:VB.NET: Pointer and Address Operator from C / Convert C to VB.NETVB.NET:C 中的指针和地址运算符 / 将 C 转换为 VB.NET
【发布时间】:2018-08-01 11:31:16
【问题描述】:
double *dDevTabPressure;
static double sPT_Mach;
dDevTabPressure = &sPT_Mach;

我想将此 C 代码转换为 VB.NET 代码。不幸的是,VB.NET 中没有指针和地址运算符 你有一个简单的解决方案吗?

【问题讨论】:

  • 您好,欢迎来到 Stack Overflow!我们将需要更多上下文(特别是代码)来帮助您。例如:这些变量以后在哪里以及如何使用?根据代码的不同,您可能不必将其全部转换为 .NET。您还可以将其编译成 C/C++ DLL 并从 VB.NET 中 P/Invoke。
  • 看到代码后,我绝对认为您最好将其编译成 DLL(如果还没有的话),然后从 VB.NET 中 P/Invoke。将 C/C++ 转换为 VB.NET 通常麻烦多于其价值。

标签: vb.net pointers address-operator


【解决方案1】:

虽然 VB.NET 没有指针,但您可以使用对象来包装 Double。对象分配 (=) 是通过引用而不是像简单数据类型那样通过值。

例如,此示例代码将 double 包装到匿名对象中。当值在一个对象中更新时,它会在另一个对象中更新,因为该对象指向内存中的相同位置。

    Dim devTabPressure = New With {.Value = Convert.ToDouble(2)}
    Dim devTabPressure2 = devTabPressure
    devTabPressure.Value = 5

    Console.WriteLine(devTabPressure.Value) ' Writes a 5
    Console.WriteLine(devTabPressure2.Value)  ' ALSO Writes a 5
    Console.Read()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 2021-10-31
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多