msdn说可以安全地暴露给任何应用程序的P / Invoke方法,并且没有任何副作用,应该放在一个名为SafeNativeMethods的类中。
和 P / Invoke无法安全调用且可能导致副作用的方法应放在名为UnsafeNativeMethods的类中。
我认为这适用于windows api。但我怎样才能知道某种方法是安全还是不安全?
是否有这样的工具或在线参考知道?在哪里编写使windows api方法安全或使用的规则?
答案 0 :(得分:1)
我认为这适用于windows api。
不完全是。它指的是您通过DllImport
提供访问权限的任何本机代码。
但我怎样才能知道方法是否安全或不安全?
你知道你的功能是做什么的。否则你不会让它可用。然后考虑一个只能访问托管和安全本机代码的恶意用户是否能够搞砸程序(或者更糟糕),如果还允许访问您正在查看的功能。
几乎所有使用指针实际暴露为指针的函数都是不安全的,但反之则不然,不涉及指针的函数也可能不安全。
请注意,如果您不处理任何不受信任的代码,您可以将所有内容放在NativeMethods
课程中,而不必担心安全或不安全。