- struct ITutorialWrapping
- {
- virtual int Func1(int a) = 0;
- };
- class TutorialWrappingClass : public ITutorialWrapping
- {
- int a;
- public:
- virtual int Func1(int a);
- };
- int TutorialWrappingClass::Func1(int a)
- {
- return (a + 10);
- }
- extern "C" __declspec(dllexport) HRESULT __stdcall GetInstance(void** ppv)
- {
- ITutorialWrapping* inst = new TutorialWrappingClass();
- *ppv = inst;
- return S_OK;
- }
- using System;
- using System.Runtime.InteropServices;
- namespace TutorialWrapping
- {
- class Program
- {
- [DllImport("TutorialWrappingDLL.dll")]
- , EntryPoint = "GetInstance"
- , CharSet = CharSet.Ansi
- , CallingConvention = CallingConvention.StdCall
- )]
- [return: MarshalAs(UnmanagedType.I4)]
- extern private unsafe static int GetInstance(void** ppv);
- static void Main(string[] args)
- {
- unsafe
- {
- void* p = null;
- GetInstance(&p);
- }
- }
- }
- }
그냥 생각 나는대로 돌직구 코딩. 왈도 코딩. ㅋ
하고나서 보니 대략 난감. 포인터 주소는 받아왔다만, 어떻게 해야 Func1을 호출 할 수 있는지 못 찾음. 삽질 좀 더 하게 될듯.
하고나서 보니 대략 난감. 포인터 주소는 받아왔다만, 어떻게 해야 Func1을 호출 할 수 있는지 못 찾음. 삽질 좀 더 하게 될듯.
댓글 없음:
댓글 쓰기