2011-10-28 10 views
0

アンマネージドC++にはcppファイルの数がありますが、これらのファイルのクラスメソッドにはP \ Invokeを使ってVB.NETからアクセスしたいと思います。誰でも私に助けを与えることができます.C++コードの周りにacラッパーを書く方法を教えてください。私は私のファイルのいくつかのコードをコピーしています、私はこれらの関数のラッパーを書くのを助けてください。Cラッパーを記述してクラスメソッドを公開する方法

wrapper.hで
#include "StdAfx.h" 
#include "Verify.h" 

Verify::Verify(void) 
    :_verified(false) 
{ 
} 

Verify::~Verify(void) 
{ 
} 

void Verify::SetVerified(bool value) 
{ 
    _verified = value; 
} 

bool Verify::GetVerified(void) const 
{ 
     _verified; 
} 

void Verify::SetFailurePoint(std::basic_string<TCHAR> const & value) 
{ 
    _failurePoint = value; 
} 

std::basic_string<TCHAR> const & Verify::GetFailurePoint(void) const 
{ 
    return _failurePoint; 
} 

答えて

2

wrapper.cで
typedef void * VERIFY_HANDLE; 
    extern VERIFY_HANDLE Verify_Create(); 
    extern void VERIFY_SetVerified(VERIFY_HANDLE, bool); 
    extern bool VERIFY_GetVerified(VERIFY_HANDLE); 
    /* etc, etc */ 

#include "wrapper.h" 
    #include "Verify.h" 
    VERIFY_HANDLE Verify_Create() { return (VERIFY_HANDLE) new Verify(); } 
    void SetVerified(VERIFY_HANDLE h, bool b) { ((Verify *)h)->SetVerified(b); } 
    bool GetVerified(VERIFY_HANDLE h) { return ((Verify *)h)->GetVerified(); } 
1

それは次のようになります:Oracle pages

extern "C" { 
    typedef void *VERIFY; 

    VERIFY create_verify() { 
     return (VERIFY)new Verify(); 
    } 
    void verify_set(VERIFY verify, int value) { 
     ((Verify*)verify)->SetVerified((bool)value); 
    } 
    int verify_get(VERIFY verify) { 
     return ((int)((Verify*)verify)->GetVerified()); 
    } 
} 

詳細情報

関連する問題