Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2014
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. class _declspec(dllexport) MyClass{
  2. public:
  3. int multiply(int x, int y) const;
  4. char* get_name() const;
  5. };
  6.  
  7. _declspec(dllexport) void* createMyClass();
  8. _declspec(dllexport) void destroyMyClass(void* objptr);
  9. _declspec(dllexport) int MyClass_multiply(void* objptr, int x, int y);
  10.  
  11. int MyClass::multiply(int x, int y) const
  12. {
  13. return x * y;
  14. }
  15.  
  16. char* MyClass::get_name() const
  17. {
  18. return "jensa";
  19. }
  20.  
  21. void* createMyClass()
  22. {
  23. return new MyClass;
  24. }
  25.  
  26. void destroyMyClass(void* objptr)
  27. {
  28. delete static_cast<MyClass*>(objptr);
  29. }
  30.  
  31. int MyClass_multiply(void* objptr, int x, int y)
  32. {
  33. std::ofstream fout("jojo.txt", std::ios::out);
  34. fout << x << std::endl;
  35. fout << y << std::endl;
  36. MyClass* p = (MyClass*)(objptr); // Explicit type cast
  37. fout << p->get_name() << std::endl;
  38. fout.close();
  39. return p->multiply(x,y);
  40. }
  41.  
  42. <DllImport(Constants.DLL_PATH, EntryPoint:="MyClass_multiply", CallingConvention:=CallingConvention.Cdecl)>
  43. Private Shared Function MyClass_multiply(ByVal objptr As Long, ByVal x As Long, ByVal y As Long) As Long
  44. End Function
  45.  
  46. Dim objptr As Long = createMyClass()
  47. Me.TextBox3.Text = MyClass_multiply(objptr, 2, 3)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement