Guest User

Untitled

a guest
Aug 19th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. C#: combine DllImport with inheritance?
  2. public abstract class abstractClassA
  3. {
  4. public abstract int abstractMethodA(int parameter);
  5. }
  6.  
  7. public class usualClass : abstractClassA
  8. {
  9. [DllImort("ExternalLib.dll")]
  10. public static extern abstractMethodA(int parameter);
  11. }
  12.  
  13. abstractClassA instance = new usualClass();
  14.  
  15. public class usualClass : abstractClassA
  16. {
  17. public extern override abstractMethodA(int parameter);
  18. }
  19.  
  20. abstractClassA instance = new usualClass();
  21.  
  22. public abstract class AbstractClassA
  23. {
  24. public abstract int AbstractMethodA(int parameter);
  25. }
  26.  
  27. public class UsualClass : AbstractClassA
  28. {
  29. [DllImport("ExternalLib.dll", EntryPoint = "abstractMethodA")]
  30. static extern int AbstractMethodAImport(int parameter);
  31. public override int AbstractMethodA(int parameter)
  32. {
  33. return AbstractMethodAImport(parameter);
  34. }
  35. }
  36.  
  37. public abstract class AbstractClassA
  38. {
  39. public abstract int AbstractMethodA(int parameter);
  40. }
  41.  
  42. public class UsualClass : AbstractClassA
  43. {
  44. public override int AbstractMethodA(int parameter)
  45. {
  46. return NativeMethods.AbstractMethodA(parameter);
  47. }
  48. }
  49.  
  50. [SuppressUnmanagedCodeSecurity]
  51. internal class NativeMethods
  52. {
  53. [DllImport("ExternalLib.dll", EntryPoint = "abstractMethodA")]
  54. public static extern int AbstractMethodA(int parameter);
  55. }
  56.  
  57. public abstract class abstractClassA
  58. {
  59. public abstract int abstractMethodA(int parameter);
  60. }
  61.  
  62. public class usualClass : abstractClassA
  63. {
  64. [DllImort("ExternalLib.dll", EntryPoint="TheFunctionName")]
  65. private static extern abstractMethodAextern(int parameter);
  66.  
  67. public override int abstractMethodA(int parameter)
  68. {
  69. return abstractMethodAextern(parameter);
  70. }
  71. }
Add Comment
Please, Sign In to add comment