Click here to Skip to main content
15,887,746 members
Articles / Programming Languages / C#

NativeWrapper: A Tool for Native Interoperability

Rate me:
Please Sign up or sign in to vote.
2.84/5 (16 votes)
14 Aug 2005CPOL4 min read 96.9K   1.4K   24  
A managed wrapper for native DLLs to be used in .NET applications
// CppLib.cpp : Defines the initialization routines for the DLL.
//

#include "stdafx.h"
#include "CppLib.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

//
//	Note!
//
//		If this DLL is dynamically linked against the MFC
//		DLLs, any functions exported from this DLL which
//		call into MFC must have the AFX_MANAGE_STATE macro
//		added at the very beginning of the function.
//
//		For example:
//
//		extern "C" BOOL PASCAL EXPORT ExportedFunction()
//		{
//			AFX_MANAGE_STATE(AfxGetStaticModuleState());
//			// normal function body here
//		}
//
//		It is very important that this macro appear in each
//		function, prior to any calls into MFC.  This means that
//		it must appear as the first statement within the 
//		function, even before any object variable declarations
//		as their constructors may generate calls into the MFC
//		DLL.
//
//		Please see MFC Technical Notes 33 and 58 for additional
//		details.
//

// CCppLibApp

BEGIN_MESSAGE_MAP(CCppLibApp, CWinApp)
END_MESSAGE_MAP()


// CCppLibApp construction

CCppLibApp::CCppLibApp()
{
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance
}


// The one and only CCppLibApp object

CCppLibApp theApp;


// CCppLibApp initialization

BOOL CCppLibApp::InitInstance()
{
	CWinApp::InitInstance();

	return TRUE;
}

void crossProduct (int  leftVector[] , int  rightVector[], int resultVector [])
{
	resultVector[0]= leftVector[1]*rightVector[2]-leftVector[2]*rightVector[1];
	resultVector[1]= leftVector[2]*rightVector[0]-leftVector[0]*rightVector[3];
	resultVector[2]= leftVector[0]*rightVector[1]-leftVector[1]*rightVector[0];
}

void interlaceString (char* originalString, char** interlacedString , int originalLength)
{
	for (int i = 0 ; i < originalLength ;i++)
	{
		(*interlacedString)[2*i]= originalString[i];
		(*interlacedString)[2*i+1]= ' ' ;
	}

}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
Italy Italy
2008 - Working on my own
2005 - ... still programming
2005 - Working at the Digigroup of Torino (Italy)
2004 - Got my PhD at the "Politecnico di Torino"
2001 - Got Graduated at the "Politecnico di Torino"
2000 - Got Graduated at the UIC (Chicago)
1983 - Started programming ...
1976 - Born

Comments and Discussions