如果类是个泛型类的话dllImport 代码不能编译

你可能需要在dllImport代码中使用泛型类。但是你知道下面的代码段能通过编译么?

open System.Runtime.InteropServices

 

type B<'T>() =

    member this.F() = ()

 

module A =

    [<DllImport("aa")>]

externvoid AA(B<int> a)

答案是否定的。

注意最后一行将抛出一个错误:Unexpectedtype application  in extern declaration.Expected ')' or other token.

你可能会说“aa”不是一个有效的dll 名字。但是这不重要。如果dll名字是有效的,同样会有相同的编译问题。编译器给我们这个错误是因为在这种情况下泛型类将不会被编译,尽管这个错误信息有点模棱两可。

这是个当前不会去修复的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值