Re: inheriting the VC++ template classes into C#.net
I didn't see any template<> in your code...
At any rate, this is a C++ class and cannot be accessed
directly in .NET. You need to wrap it in a C++/CLI
class first, or expose it via COM and COM Interop
(what Brian suggested). For the first approach (e.g. if
it's possible with MFC) you should ask in the C++/CLI
group:
microsoft.public.dotnet.languages.vc
For the second approach you can ask in the Interop group:
microsoft.public.dotnet.framework.interop
--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD
email: agnickolov@mvps.org
MVP VC FAQ: http://vcfaq.mvps.org
=====================================
"Amu" <amu4uall@gmail.com> wrote in message
news:1169011090.473477.307840@v45g2000cwv.googlegroups.com...
Alexander Nickolov wrote:
.NET 2.0 introduced generics. Depending on your template
use, you may or may not be able to translate the code to
C++/CLI using generics. Generics are useable from C#.
Note this question should be addresed towards the C++/CLI
group:
microsoft.public.dotnet.languages.vc
Ah, of course as others already mentioned, C++ templates
are not visible in .NET since the framework does not
support such feature. Generics are the semantically closest
feature supported in .NET.
--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD
email: agnickolov@mvps.org
MVP VC FAQ: http://vcfaq.mvps.org
=====================================
"Amu" <amu4uall@gmail.com> wrote in message
news:1168954439.021003.249860@11g2000cwr.googlegroups.com...
Kim Gr?sman wrote:
Hi Amu,
Hi i am stuck up in a part of project where i have to inherit the VC++
template classes into C#.net. Please provide me the solution for this
Templates are a language feature of C++, it doesn't exist in C#.
Could you show what you are trying to do in a little more detail, and
maybe
we can come up with an alternate solution?
--
Best Regards,
Kim Gr?sman
can u give me some clear idea regarding
it.actually i have a dll ( template class) ready which is written in
VC++6. But presently i need to inherit its classes into my new C#./net
project.so if there is some better solution with u then please give me
the solution.
:Amu
The C++ classes which I mentioned are classes which are derived from
MFC standard classes like CPropertyPage and CPropertySheet.
These template classes are simple MFC classes which are packaged as a
DLL. Since the Implementation part of this DLL is huge, I can't think
of rewriting the whole code in C#.
I have attached the the class template code snippet for your reference.
I need to inherit from this class, DTMPOPropertyPage in C#.
How can I achieve this?
class AFX_EXT_CLASS DTMPOPropertyPage : public CPropertyPage
{
// Construction
public:
//DECLARE_DYNAMIC(DTMPOPropertyPage)
DTMPOPropertyPage(FDTXmtrDoc *doc, UINT nIDTemplate = 0,
UINT nCaption = 0);
~DTMPOPropertyPage();
//{{AFX_DATA(CXmtrPropertyPage)
// NOTE - ClassWizard will add data members
here.
// DO NOT EDIT what you see in these blocks
of generated code !
//}}AFX_DATA
// Attributes
public:
// Access to determine if performing CANCEL processing.
// Pages use this to avoid validation
//BOOL InCancelProcessing ();
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CXmtrPropertyPage)
// Define a generic OnKillFocus handler for use by all
pages
//afx_msg void OnKillFocus();
virtual void DoDataExchange(CDataExchange* pDX); //
DDX/DDV support
//}}AFX_VIRTUAL
virtual BOOL OnInitDialog() { return
CPropertyPage::OnInitDialog(); }
virtual BOOL OnSetActive() { UpdateData(FALSE); return
CPropertyPage::OnSetActive(); }
//virtual BOOL OnKillActive();
// access to BO parameters
virtual void SetValues() = 0;
virtual void UpdateDocument() = 0;
// access to AppInfo
FDTAppInfo *GetAppInfo();
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CXmtrPropertyPage)
// NOTE: the ClassWizard will add member
functions here
//}}AFX_MSG
//afx_msg LRESULT OnCommandHelp(WPARAM, LPARAM lParam);
//afx_msg LRESULT OnShiftF1Help(WPARAM, LPARAM lParam);
//afx_msg void OnHelp( );
afx_msg BOOL OnHelpInfo( HELPINFO* lpHelpInfo );
//_DLLPROC DECLARE_MESSAGE_MAP()
DTMPOPropertySheet *GetSheet();
// pointer to document
FDTXmtrDoc *mDoc;
private:
void SetSheet( DTMPOPropertySheet *ps );
friend class DTMPOPropertySheet;
mDTMPOPropertyPage *m;
};