<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[DLL in C++ schreiben]]></title><description><![CDATA[<p>Ich bin zwar Neuling in Sachen C++, aber ich muss unbedingt eine DLL schreiben.<br />
Also ich fange mal ganz vorne an....<br />
1.Ich habe eine DLL.<br />
2.Zu dieser DLL gibt es zwei .h und zwei .cpp Dateien(die eine bindet die andere ein, also eigentlich eine Datei.<br />
3.Ich muss aus diesem Code, der ja die DLL wrappt wieder eine DLL machen.</p>
<p>Hintergrund ist, daß ich die ursprüngliche DLL, nennen wir sie Ursprung.dll auch mit anderen Programmiersprachen nutzen möchte, es aber immer an einer von zwei Sachen scheitert.Zum einen Wird bei drei Funktionen immer eine Struktur gefüllt, womit nicht jede Sprache immer so einfach klarkommt, und zum anderen gibt es ein Rückgabetypproblem, welches nur zu lösen ist, wenn diese Funktion nur in der Dll verwendet wird.</p>
<p>Im Grunde möchte ich aus dem C++ Code also eine Art Loader.dll für die Ursprung.dll, mit resultierender Vereinfachung der Funktionen die gewrappt werden müssen.</p>
<p>Ich brauch also eigentlich &quot;nur&quot; Hilfe beim Konvertieren des Sourcecodes nach DLL-Konform.</p>
<p>Es handelt sich um etwas über 20 Funktionen, vielleicht tut mir ja jemand den Gefallen und hilft mir dabei.<br />
Allein als C++ Neuling würd ich ewig brauchen, da ich echt erst grad in den Kinderschuhen stecke was C++ anbelangt...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/238014/dll-in-c-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 04:34:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/238014.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 05 Apr 2009 10:03:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DLL in C++ schreiben on Sun, 05 Apr 2009 10:03:58 GMT]]></title><description><![CDATA[<p>Ich bin zwar Neuling in Sachen C++, aber ich muss unbedingt eine DLL schreiben.<br />
Also ich fange mal ganz vorne an....<br />
1.Ich habe eine DLL.<br />
2.Zu dieser DLL gibt es zwei .h und zwei .cpp Dateien(die eine bindet die andere ein, also eigentlich eine Datei.<br />
3.Ich muss aus diesem Code, der ja die DLL wrappt wieder eine DLL machen.</p>
<p>Hintergrund ist, daß ich die ursprüngliche DLL, nennen wir sie Ursprung.dll auch mit anderen Programmiersprachen nutzen möchte, es aber immer an einer von zwei Sachen scheitert.Zum einen Wird bei drei Funktionen immer eine Struktur gefüllt, womit nicht jede Sprache immer so einfach klarkommt, und zum anderen gibt es ein Rückgabetypproblem, welches nur zu lösen ist, wenn diese Funktion nur in der Dll verwendet wird.</p>
<p>Im Grunde möchte ich aus dem C++ Code also eine Art Loader.dll für die Ursprung.dll, mit resultierender Vereinfachung der Funktionen die gewrappt werden müssen.</p>
<p>Ich brauch also eigentlich &quot;nur&quot; Hilfe beim Konvertieren des Sourcecodes nach DLL-Konform.</p>
<p>Es handelt sich um etwas über 20 Funktionen, vielleicht tut mir ja jemand den Gefallen und hilft mir dabei.<br />
Allein als C++ Neuling würd ich ewig brauchen, da ich echt erst grad in den Kinderschuhen stecke was C++ anbelangt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1691138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1691138</guid><dc:creator><![CDATA[itmagic]]></dc:creator><pubDate>Sun, 05 Apr 2009 10:03:58 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in C++ schreiben on Sun, 05 Apr 2009 10:33:49 GMT]]></title><description><![CDATA[<p>Ich verstehe dein Problem nicht. Vielleicht kannst den Problem- Teil deines Sourcecodes mal posten.</p>
<p>Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1691147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1691147</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sun, 05 Apr 2009 10:33:49 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in C++ schreiben on Sun, 05 Apr 2009 11:06:46 GMT]]></title><description><![CDATA[<p>Naja Problemteil ist es in C++ ja nicht.<br />
Es wird nur zum Problem, wenn man versucht diesen code in eine andere Sprache zu konvertieren.<br />
Der einzige Weg im Moment und wohl auch schwerste für mich liegt darin, eine DLL zu erstellen.</p>
<p>Ich poste mal den kompletten source...</p>
<p>FIXorsBridge.h...</p>
<pre><code>#ifndef __FIXORSBRIDGE__
#define __FIXORSBRIDGE__

//##################################################
//						Defines
//##################################################

#define FIXCALL _stdcall

//	CreateImageEx Flags 
#define FI_AUTOFLAGS -1
#define FI_NONE 0
#define FI_MIDHANDLE 1
#define FI_FILTEREDIMAGE 2
#define FI_FILTERED 2

//	SetBlend Flags 
#define FI_SOLIDBLEND 0
#define FI_ALPHABLEND 1
#define FI_LIGHTBLEND 2
#define FI_SHADEBLEND 3
#define FI_MASKBLEND 4
#define FI_MASKBLEND2 5
#define FI_INVALPHABLEND 6

//	ImageFonts Flags
#define FI_SMOOTHFONT 1

//	DrawImagePart Wrap Flags
#define FI_NOWRAP 0
#define FI_WRAPU 1
#define FI_MIRRORU 2
#define FI_WRAPV 4
#define FI_MORRORV 8
#define FI_WRAPUV 5
#define FI_MIRRORUV 10

//	DrawPoly consts
#define FI_POINTLIST 1
#define FI_LINELIST 2
#define FI_LINESTRIP 3
#define FI_TRIANGLELIST 4
#define FI_TRIANGLESTRIP 5
#define FI_TRIANGLEFAN 6 

#define FI_COLOROVERLAY 1

//##################################################
//					 FastImage
//##################################################

struct sFI_Property {
	int Blend;
	float Alpha;
	int Red, Green, Blue;
	int ColorVertex0, ColorVertex1, ColorVertex2, ColorVertex3;
	float Rotation, ScaleX, ScaleY;
	float MatrixXX, MatrixXY, MatrixYX, MatrixYY;
	int HandleX, HandleY;
	int OriginX, OriginY;
	int AutoHandle, AutoFlags;
	float LineWidth;
	int ViewportX, ViewportY, ViewportWidth, ViewportHeight;
	int MipLevel;
	float ProjScaleX, ProjScaleY, ProjRotation;
	int ProjOriginX, ProjOriginY;
	int ProjHandleX, ProjHandleY;
	int Reserved0,Reserved1;
};

struct sFI_ImageProperty {
	int HandleX;
	int HandleY;
	int Width;
	int Height;
	int Frames;
	int Flags;
	int Texture;
	int Reserved0;
	int Reserved1;
};

struct sFI_FontProperty {
	int Width,Height,FirstChar,Kerning;
	int Image,FrameWidth,FrameHeight,FrameCount;
	int* Chars;

	//sFI_FontProperty() { Chars = new int[256]; }
	//~sFI_FontProperty() { delete Chars; }
};

struct sFI_Test {
	int Result;
	int ProjectedX, ProjectedY;
	int RectX, RectY;
	float RectU, RectV;
	int TextureX, TextureY;
	int Texture;
	int Frame;
	int Reserved1;
};

struct sFI_Surfaces {
	int Count;
	int* Array;
	int Texture;
};

//##################################################
//			 FastImage
//##################################################

class cFIXorsBridge {
private:
	/* Singleton - 
	static cFIXorsBridge* vsSelf;
	/* Singleton - 
	static int vsRefcount;

	/*  FastImageXors.dll */
	void* HandleDLL;

	/*  FastImageXors.dll */
	bool LoadFastImage();

	/*  FastImageXors.dll */
	int (FIXCALL*pInitDraw)(int Direct3DDevice9, int reserved);
	int (FIXCALL*pDeinitDraw)();
	int (FIXCALL*pStartDraw)();
	int (FIXCALL*pEndDraw)();
	int (FIXCALL*pSetCustomState)(int operation, int value);
	int (FIXCALL*pSetCustomTextureState)(int operation, int value);
	int (FIXCALL*pSetMipLevel)(int level);
	int (FIXCALL*pSetBlend)(int blend);
	int (FIXCALL*pSetAlpha)(float alpha);
	int (FIXCALL*pSetColor)(int r, int g, int b);
	int (FIXCALL*pSetCustomColor)(int colorVertex0, int colorVertex1, int colorVertex2, int colorVertex3);
	int (FIXCALL*pSetRotation)(float rotation);
	int (FIXCALL*pSetScale)(float scaleX, float scaleY);
	int (FIXCALL*pSetTransform)(float rotation, float scaleX, float scaleY);
	int (FIXCALL*pSetMatrix)(float xx, float xy, float yx, float yy);
	int (FIXCALL*pSetHandle)(int x, int y);
	int (FIXCALL*pSetOrigin)(int x, int y);
	int (FIXCALL*pMidHandleImage)(int image);
	int (FIXCALL*pSetImageHandle)(int image, int x, int y);
	int (FIXCALL*pAutoMidHandleEx)(int state);
	int (FIXCALL*pAutoImageFlags)(int flags);
	int (FIXCALL*pSetLineWidth)(float width);
	int (FIXCALL*pSetViewport)(int x, int y, int width, int height);
	int (FIXCALL*pCreateImageEx)(void* texures, int width, int height, int flags);
	int (FIXCALL*pFreeImageEx)(int image);
	int (FIXCALL*pDrawImageEx)(int image, int x, int y, int frame);
	int (FIXCALL*pDrawImageRectEx)(int image, int x, int y, int width, int height, int frame);
	int (FIXCALL*pDrawImagePart)(int image, int x, int y, int width, int height, int partX, int partY, int partWidth, int partHeight, int frame, int wrap);
	int (FIXCALL*pDrawPoly)(int x, int y, int bank, int image, int frame, int color);
	int (FIXCALL*pDrawRect)(int x, int y, int width, int height, int fill);
	int (FIXCALL*pDrawRectSimple)(int x, int y, int width, int height, int fill);
	int (FIXCALL*pDrawLine)(int x, int y, int x2, int y2);
	int (FIXCALL*pDrawLineSimple)(int x, int y, int x2, int y2);
	int (FIXCALL*pDrawPlot)(int x, int y);
	int (FIXCALL*pDrawOval)(int x, int y, int width, int height);
	int (FIXCALL*pGetProperty)(void* type);
	int (FIXCALL*pGetImageProperty)(int img, void* type);
	int (FIXCALL*pSetProjScale)(int scaleX, int scaleY);
	int (FIXCALL*pSetProjRotation)(float rotation);
	int (FIXCALL*pSetProjTransform)(float rotation, float scaleX, float scaleY);
	int (FIXCALL*pSetProjOrigin)(int x, int y);
	int (FIXCALL*pSetProjHandle)(int x, int y);
	int (FIXCALL*pMidHandleProj)();
	int (FIXCALL*pCreateImageFont)(void* type);
	int (FIXCALL*pSetImageFont)(int font);
	int (FIXCALL*pFreeImageFont)(int font);
	int (FIXCALL*pDrawTextEx)(const char* txt, int x, int y, int centerX, int centerY, int maxWidth);
	int (FIXCALL*pDrawTextRect)(const char* txt, int x, int y, int w, int h, int centerX, int centerY, int lineSpacing);
	int (FIXCALL*pTextRectCount)();
	int (FIXCALL*pTextRectMaxWidth)();
	int (FIXCALL*pTextRectWidth)(int StringNumber);
	int (FIXCALL*pStringWidthEx)(const char* txt, int maxWidth);
	int (FIXCALL*pStringHeightEx)(const char* txt);
	int (FIXCALL*pGetFontProperty)(int font, void* type);
	int (FIXCALL*pTestRect)(int xPoint, int yPoint, int xRect, int yRect, int WidthRect, int HeightRect, int Local, void* Result, int ResultFlag);
	int (FIXCALL*pTestOval)(int xPoint, int yPoint, int xOval, int yOval, int WidthOval, int HeightOval, int Local, void* Result, int ResultFlag);
	int (FIXCALL*pTestImage)(int xPoint, int yPoint, int xImage, int yImage, int Image, int Local, void* Result, int ResultFlag);
	int (FIXCALL*pTestRendered)(int xPoint, int yPoint, int Local, void* Result, int ResultFlag);
	int (FIXCALL*pGetCustomTransform)(int type, void* martix);
	int (FIXCALL*pSetCustomTransform)(int type, void* martix);

protected:
	cFIXorsBridge();
	virtual ~cFIXorsBridge();

public:
	/*  FastImage */
	static cFIXorsBridge* Initiate(bool initDraw = true);

	static cFIXorsBridge&amp; GetSingleton() { return *vsSelf; }
	static cFIXorsBridge* GetSingletonPtr() { return vsSelf; }

	void FreeSingleton() { if(--vsRefcount==0) delete this; }

	sFI_Property Property;
	sFI_ImageProperty ImageProperty;
	sFI_FontProperty FontProperty;
	sFI_Test Test;

	int InitDraw();
	int DeinitDraw() { return pDeinitDraw(); }
	int StartDraw() { return pStartDraw(); }
	int EndDraw() { return pEndDraw(); }
	int GetProperty() { return pGetProperty(&amp;Property); }
	int GetImageProperty(int img) { return pGetImageProperty(img, &amp;ImageProperty); }
	int GetFontProperty(int font) { return pGetFontProperty(font, &amp;FontProperty); }

	int SetCustomState(int operation, int value) { return pSetCustomState(operation, value); }
	int SetCustomTextureState(int operation, int value) { return pSetCustomTextureState(operation, value); }
	int SetMipLevel(int level) { return pSetMipLevel(level); }
	int SetBlend(int blend) { return pSetBlend(blend); }
	int SetAlpha(float alpha) { return pSetAlpha(alpha); }
	int SetColor(int r, int g, int b) { return pSetColor(r, g, b); }
	int SetCustomColor(int colorVertex0, int colorVertex1, int colorVertex2, int colorVertex3) { return pSetCustomColor(colorVertex0, colorVertex1, colorVertex2, colorVertex3); }
	int SetRotation(float rotation) { return pSetRotation(rotation); }
	int SetScale(float scaleX, float scaleY) { return pSetScale(scaleX, scaleY); }
	int SetTransform(float rotation, float scaleX, float scaleY) { return pSetTransform(rotation, scaleX, scaleY); }
	int SetMatrix(float xx, float xy, float yx, float yy) { return pSetMatrix(xx, xy, yx, yy); }
	int SetHandle(int x, int y) { return pSetHandle(x, y); }
	int SetOrigin(int x, int y) { return pSetOrigin(x, y); }
	int MidHandleImage(int image) { return pMidHandleImage(image); }
	int SetImageHandle(int image, int x, int y) { return pSetImageHandle(image, x, y); }
	int AutoMidHandleEx(int state) { return pAutoMidHandleEx(state); }
	int AutoImageFlags(int flags) { return pAutoImageFlags(flags); }
	int SetLineWidth(float width) { return pSetLineWidth(width); }
	int SetViewport(int x, int y, int width, int height) { return pSetViewport(x, y, width, height); }
	int SetProjScale(int scaleX, int scaleY) { return pSetProjScale(scaleX, scaleY); }
	int SetProjRotation(float rotation) { return pSetProjRotation(rotation); }
	int SetProjTransform(float rotation, float scaleX, float scaleY) { return pSetProjTransform(rotation, scaleX, scaleY); }
	int SetProjOrigin(int x, int y) { return pSetProjOrigin(x, y); }
	int SetProjHandle(int x, int y) { return pSetProjHandle(x, y); }
	int MidHandleProj() { return pMidHandleProj(); }
	int SetImageFont(int font) { return pSetImageFont(font); }

	int SetCustomBlend(int src, int dest);
	int CreateImage(int texture, int width, int height, int imageFlags = FI_AUTOFLAGS);
	int LoadImageF(const char* fileName, int textureFlags = 0, int imageFlags = FI_AUTOFLAGS);
	int LoadAnimImage(const char* fileName, int textureFlags, int frameWidth, int frameHeight, int firstFrame, int frameCount, int imageFlags = FI_AUTOFLAGS);
	int LoadImageFont(const char* filename, int flags);
	void FreeImage(int image, int freeTexture = 0);
	void FreeImageFont(int font);

	int DrawImage(int image, int x, int y, int frame = 0) { return( pDrawImageEx(image, x, y, frame) ); }
	int DrawImageRect(int image, int x, int y, int width, int height, int frame = 0) { return( pDrawImageRectEx(image, x, y, width, height, frame) ); }
	int DrawImagePart(int image, int x, int y, int width, int height, int partX = 0, int partY = 0, int partWidth = 0, int partHeight = 0, int frame = 0, int wrap = FI_NOWRAP) { return( pDrawImagePart(image, x, y, width, height, partX, partY, partWidth, partHeight, frame, wrap) ); }
	int DrawPoly(int x, int y, int bank, int image = 0, int frame = 0, int color = FI_NONE) { return( pDrawPoly(x, y, bank, image, frame, color) ); }
	int DrawRect(int x, int y, int width, int height, int fill = 1) { return( pDrawRect(x, y, width, height, fill) ); }
	int DrawRectSimple(int x, int y, int width, int height, int fill = 1) { return( pDrawRectSimple(x, y, width, height, fill) ); }
	int DrawLine(int x, int y, int x2, int y2) { return pDrawLine(x, y, x2, y2); }
	int DrawLineSimple(int x, int y, int x2, int y2) { return pDrawLineSimple(x, y, x2,  y2); }
	int DrawPlot(int x, int y) { return pDrawPlot(x, y); }
	int DrawOval(int x, int y, int width, int height) { return pDrawOval(x, y, width, height); }
	int DrawText(const char* txt, int x, int y, int centerX = 0, int centerY = 0, int maxWidth = 10000) { return( pDrawTextEx(txt, x, y, centerX, centerY, maxWidth) ); }
	int DrawTextRect(const char* txt, int x, int y, int w, int h, int centerX = 0, int centerY = 0, int lineSpacing = 0) { return( pDrawTextRect(txt, x, y, w, h, centerX, centerY, lineSpacing) ); }
	int TextRectCount() { return pTextRectCount(); }
	int TextRectMaxWidth() { return pTextRectMaxWidth(); }
	int TextRectWidth(int StringNumber) { return pTextRectWidth(StringNumber); }
	int StringWidth(const char* txt, int maxWidth = 10000) { return pStringWidthEx(txt, maxWidth); }
	int StringHeight(const char* txt) { return pStringHeightEx(txt); }

	int TestRect(int xPoint, int yPoint, int xRect, int yRect, int WidthRect, int HeightRect, int Local = 0) { return( pTestRect(xPoint, yPoint, xRect, yRect, WidthRect, HeightRect, Local, &amp;Test, 1) ); }
	int TestOval(int xPoint, int yPoint, int xOval, int yOval, int WidthOval, int HeightOval, int Local = 0) { return( pTestOval(xPoint, yPoint, xOval, yOval, WidthOval, HeightOval, Local, &amp;Test, 1) ); }
	int TestImage(int xPoint, int yPoint, int xImage, int yImage, int Image, int alphaLevel = 0, int Frame = 0, int Loc = 0);
	int TestRendered(int xPoint, int yPoint, int alphaLevel = 0, int Loc = 0);
	int GetCustomTransform(int type, void* martix) { return pGetCustomTransform(type, martix); }
	int SetCustomTransform(int type, void* martix) { return pSetCustomTransform(type, martix); }
};

#endif /*__FIXORSBRIDGE__*/
</code></pre>
<p>und FIXorsBridge.cpp</p>
<pre><code>#define WIN32_LEAN_AND_MEAN
#include &lt;windows.h&gt;
#include &lt;fstream&gt;
#include &quot;FIXorsBridge.h&quot;
#include &quot;GetImageInfo.h&quot;
#include &quot;../x3d/defines.h&quot;
#include &quot;../x3d/texture.h&quot;
#include &quot;../x3d/graphics.h&quot;

using namespace std;

//---------------------------------------------------------------------
cFIXorsBridge* cFIXorsBridge::vsSelf = NULL;
//---------------------------------------------------------------------
int cFIXorsBridge::vsRefcount = 0;
//---------------------------------------------------------------------
cFIXorsBridge::cFIXorsBridge() {
	HandleDLL = 0;
	FontProperty.Chars = new int[256];
}
//---------------------------------------------------------------------
cFIXorsBridge::~cFIXorsBridge() {
	vsSelf = NULL;
	if (HandleDLL) FreeLibrary( (HMODULE)HandleDLL );
	delete[] FontProperty.Chars;
}
//---------------------------------------------------------------------
cFIXorsBridge* cFIXorsBridge::Initiate(bool initDraw) {
		if (!vsSelf) {
		vsSelf = new cFIXorsBridge;
		if ( !vsSelf-&gt;LoadFastImage() ) {
			delete vsSelf;
			return NULL;
		}
	}
	if (initDraw) vsSelf-&gt;InitDraw();
	vsRefcount++;
	return vsSelf;
}
//---------------------------------------------------------------------
bool cFIXorsBridge::LoadFastImage() {
	HMODULE hLib = LoadLibrary(&quot;FastImageXors.dll&quot;);
	if (hLib == NULL) { return(false); }
	HandleDLL = (void*)hLib;

	(FARPROC &amp;)pInitDraw = GetProcAddress(hLib, &quot;InitDraw_&quot;);
	if (!pInitDraw) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pDeinitDraw = GetProcAddress(hLib, &quot;DeinitDraw_&quot;);
	if (!pDeinitDraw) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pStartDraw = GetProcAddress(hLib, &quot;StartDraw_&quot;);
	if (!pStartDraw) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pEndDraw = GetProcAddress(hLib, &quot;EndDraw_&quot;);
	if (!pEndDraw) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetCustomState = GetProcAddress(hLib, &quot;SetCustomState_&quot;);
	if (!pSetCustomState) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetCustomTextureState = GetProcAddress(hLib, &quot;SetCustomTextureState_&quot;);
	if (!pSetCustomTextureState) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetMipLevel = GetProcAddress(hLib, &quot;SetMipLevel_&quot;);
	if (!pSetMipLevel) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetBlend = GetProcAddress(hLib, &quot;SetBlend_&quot;);
	if (!pSetBlend) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetAlpha = GetProcAddress(hLib, &quot;SetAlpha_&quot;);
	if (!pSetAlpha) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetColor = GetProcAddress(hLib, &quot;SetColor_&quot;);
	if (!pSetColor) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetCustomColor = GetProcAddress(hLib, &quot;SetCustomColor_&quot;);
	if (!pSetCustomColor) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetRotation = GetProcAddress(hLib, &quot;SetRotation_&quot;);
	if (!pSetRotation) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetScale = GetProcAddress(hLib, &quot;SetScale_&quot;);
	if (!pSetScale) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetTransform = GetProcAddress(hLib, &quot;SetTransform_&quot;);
	if (!pSetTransform) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetMatrix = GetProcAddress(hLib, &quot;SetMatrix_&quot;);
	if (!pSetMatrix) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetHandle = GetProcAddress(hLib, &quot;SetHandle_&quot;);
	if (!pSetHandle) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetOrigin = GetProcAddress(hLib, &quot;SetOrigin_&quot;);
	if (!pSetOrigin) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pMidHandleImage = GetProcAddress(hLib, &quot;MidHandleImage_&quot;);
	if (!pMidHandleImage) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetImageHandle = GetProcAddress(hLib, &quot;SetImageHandle_&quot;);
	if (!pSetImageHandle) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pAutoMidHandleEx = GetProcAddress(hLib, &quot;AutoMidHandleEx_&quot;);
	if (!pAutoMidHandleEx) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pAutoImageFlags = GetProcAddress(hLib, &quot;AutoImageFlags_&quot;);
	if (!pAutoImageFlags) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetLineWidth = GetProcAddress(hLib, &quot;SetLineWidth_&quot;);
	if (!pSetLineWidth) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetViewport = GetProcAddress(hLib, &quot;SetViewport_&quot;);
	if (!pSetViewport) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pCreateImageEx = GetProcAddress(hLib, &quot;CreateImageEx_&quot;);
	if (!pCreateImageEx) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pFreeImageEx = GetProcAddress(hLib, &quot;FreeImageEx_&quot;);
	if (!pFreeImageEx) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pDrawImageEx = GetProcAddress(hLib, &quot;DrawImageEx_&quot;);
	if (!pDrawImageEx) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pDrawImageRectEx = GetProcAddress(hLib, &quot;DrawImageRectEx_&quot;);
	if (!pDrawImageRectEx) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pDrawImagePart = GetProcAddress(hLib, &quot;DrawImagePart_&quot;);
	if (!pDrawImagePart) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pDrawPoly = GetProcAddress(hLib, &quot;DrawPoly_&quot;);
	if (!pDrawPoly) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pDrawRect = GetProcAddress(hLib, &quot;DrawRect_&quot;);
	if (!pDrawRect) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pDrawRectSimple = GetProcAddress(hLib, &quot;DrawRectSimple_&quot;);
	if (!pDrawRectSimple) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pDrawLine = GetProcAddress(hLib, &quot;DrawLine_&quot;);
	if (!pDrawLine) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pDrawLineSimple = GetProcAddress(hLib, &quot;DrawLineSimple_&quot;);
	if (!pDrawLineSimple) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pDrawPlot = GetProcAddress(hLib, &quot;DrawPlot_&quot;);
	if (!pDrawPlot) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pDrawOval = GetProcAddress(hLib, &quot;DrawOval_&quot;);
	if (!pDrawOval) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pGetProperty = GetProcAddress(hLib, &quot;GetProperty_&quot;);
	if (!pGetProperty) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pGetImageProperty = GetProcAddress(hLib, &quot;GetImageProperty_&quot;);
	if (!pGetImageProperty) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetProjScale = GetProcAddress(hLib, &quot;SetProjScale_&quot;);
	if (!pSetProjScale) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetProjRotation = GetProcAddress(hLib, &quot;SetProjRotation_&quot;);
	if (!pSetProjRotation) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetProjTransform = GetProcAddress(hLib, &quot;SetProjTransform_&quot;);
	if (!pSetProjTransform) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetProjOrigin = GetProcAddress(hLib, &quot;SetProjOrigin_&quot;);
	if (!pSetProjOrigin) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetProjHandle = GetProcAddress(hLib, &quot;SetProjHandle_&quot;);
	if (!pSetProjHandle) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pMidHandleProj = GetProcAddress(hLib, &quot;MidHandleProj_&quot;);
	if (!pMidHandleProj) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pCreateImageFont = GetProcAddress(hLib, &quot;CreateImageFont_&quot;);
	if (!pCreateImageFont) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetImageFont = GetProcAddress(hLib, &quot;SetImageFont_&quot;);
	if (!pSetImageFont) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pFreeImageFont = GetProcAddress(hLib, &quot;FreeImageFont_&quot;);
	if (!pFreeImageFont) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pDrawTextEx = GetProcAddress(hLib, &quot;DrawTextEx_&quot;);
	if (!pDrawTextEx) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pDrawTextRect = GetProcAddress(hLib, &quot;DrawTextRect_&quot;);
	if (!pDrawTextRect) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pTextRectCount = GetProcAddress(hLib, &quot;TextRectCount_&quot;);
	if (!pTextRectCount) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pTextRectMaxWidth = GetProcAddress(hLib, &quot;TextRectMaxWidth_&quot;);
	if (!pTextRectMaxWidth) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pTextRectWidth = GetProcAddress(hLib, &quot;TextRectWidth_&quot;);
	if (!pTextRectWidth) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pStringWidthEx = GetProcAddress(hLib, &quot;StringWidthEx_&quot;);
	if (!pStringWidthEx) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pStringHeightEx = GetProcAddress(hLib, &quot;StringHeightEx_&quot;);
	if (!pStringHeightEx) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pGetFontProperty = GetProcAddress(hLib, &quot;GetFontProperty_&quot;);
	if (!pGetFontProperty) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pTestRect = GetProcAddress(hLib, &quot;TestRect_&quot;);
	if (!pTestRect) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pTestOval = GetProcAddress(hLib, &quot;TestOval_&quot;);
	if (!pTestOval) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pTestImage = GetProcAddress(hLib, &quot;TestImage_&quot;);
	if (!pTestImage) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pTestRendered = GetProcAddress(hLib, &quot;TestRendered_&quot;);
	if (!pTestRendered) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pGetCustomTransform = GetProcAddress(hLib, &quot;GetCustomTransform_&quot;);
	if (!pGetCustomTransform) { FreeLibrary(hLib); return(false); }

	(FARPROC &amp;)pSetCustomTransform = GetProcAddress(hLib, &quot;SetCustomTransform_&quot;);
	if (!pSetCustomTransform) { FreeLibrary(hLib); return(false); }

	return(true);
}
//---------------------------------------------------------------------
char* trim_str(char* ch) {
	int shift = 0, num = 0;
	do { if (ch[num] == ' ') { shift++; } else { ch[num-shift] = ch[num]; } } while(ch[num++]);
	return(ch);
}
//---------------------------------------------------------------------
int cFIXorsBridge::InitDraw() {
	return( pInitDraw(xGetDevice(), 0) );
}
//---------------------------------------------------------------------
int cFIXorsBridge::SetCustomBlend(int src, int dest) {
	pSetCustomState(15,0);		//	DX7  SetRenderState ( D3DRENDERSTATE_AlphaTestEnable, False )
	pSetCustomState(27,1);		//	DX7  SetRenderState ( D3DRENDERSTATE_AlphaBlendEnable, True )
	pSetCustomState(19,src);	//	DX7  SetRenderState ( D3DRENDERSTATE_SrcBlend, src )
	return pSetCustomState(20,dest);	//	DX7  SetRenderState ( D3DRENDERSTATE_DestBlend, dest )
}
//---------------------------------------------------------------------
int cFIXorsBridge::CreateImage(int texture, int width, int height, int imageFlags) {
	if (texture) {
		int Array[256];
		sFI_Surfaces surf;
		surf.Texture = texture;
		surf.Array = Array;
		surf.Count = xGetTextureFrames(texture);
		if (surf.Count&gt;0) {
			if (surf.Count&gt;256) surf.Count=256;
			for(register int i=0; i&lt;surf.Count; i++) {
				surf.Array[i] = xGetTextureSurface(texture, i);
			}
			return(pCreateImageEx(&amp;surf, width, height, imageFlags));
		}
	}
	return(0);
}
//---------------------------------------------------------------------
int cFIXorsBridge::LoadImageF(const char* fileName, int textureFlags, int imageFlags) {
	if (ImageInfo_ReadFile(fileName)) {
		return( CreateImage(xLoadTexture(fileName, textureFlags), ImgInfo.Width, ImgInfo.Height, imageFlags) );
	}
	return(0);
}
//---------------------------------------------------------------------
int cFIXorsBridge::LoadAnimImage(const char* fileName, int textureFlags, int frameWidth, int frameHeight, int firstFrame, int frameCount, int imageFlags) {
	textureFlags = (textureFlags &amp; 0x3F) | 0x9;
	return( CreateImage( xLoadAnimTexture (fileName, textureFlags, frameWidth, frameHeight, firstFrame, frameCount), frameWidth, frameHeight, imageFlags) );
}
//---------------------------------------------------------------------
int cFIXorsBridge::TestImage(int xPoint, int yPoint, int xImage, int yImage, int Image, int alphaLevel, int Frame, int Local) {
	if (pTestImage(xPoint, yPoint, xImage, yImage, Image, Local, &amp;Test, 1) &amp;&amp; alphaLevel&gt;0 &amp;&amp; Test.Texture!=0) {
		if ( (xReadPixel(Test.TextureX, Test.TextureY, xTextureBuffer(Test.Texture,Frame))&gt;&gt;24)&lt;alphaLevel ) Test.Result = 0;
	}
	return(Test.Result);
}
//---------------------------------------------------------------------
int cFIXorsBridge::TestRendered(int xPoint, int yPoint, int alphaLevel, int Local) {
	if (pTestRendered(xPoint, yPoint, Local, &amp;Test, 1) &amp;&amp; alphaLevel&gt;0 &amp;&amp; Test.Texture!=0) {
		if ( (xReadPixel(Test.TextureX, Test.TextureY, xTextureBuffer(Test.Texture,Test.Frame))&gt;&gt;24)&lt;alphaLevel ) Test.Result = 0;
	}
	return(Test.Result);
}
//---------------------------------------------------------------------
void cFIXorsBridge::FreeImage(int image, int freeTexture) {
	if (freeTexture!=0 &amp;&amp; GetImageProperty(image)!=0) {
		if (ImageProperty.Texture != 0) xFreeTexture(ImageProperty.Texture);
	}
	pFreeImageEx(image);
}
//---------------------------------------------------------------------
void cFIXorsBridge::FreeImageFont(int font) {
	if ( GetFontProperty(font) ){
		if (FontProperty.Image) FreeImage(FontProperty.Image, 1);
	}
	pFreeImageFont(font);
}
//---------------------------------------------------------------------
int cFIXorsBridge::LoadImageFont(const char* filename, int flags) {
	ifstream file(filename, ios::in | ios::binary);
	if (!file) { return(0); }

	char name[100];
	char *val;
	char *AnimTex = 0;
	int AnimTexFlag = 0;
	int num;

	//sFI_FontProperty font;

	while (file.getline(name,99)) {
		if (name[0]==59 &amp;&amp; name[0]==13) continue;
		if ((val = strchr(name,'=')) == NULL) continue;

			*val++ = 0;
			num = strlen(val)-1;
		if (val[num] == 13) val[num] = 0;
			trim_str(name);
		trim_str(val);

			num = -1;
		while(name[++num]) { name[num] = toupper(name[num]); }

		if (strcmp(name,&quot;ANIMTEXTURE&quot;) == 0) {
			if (AnimTex) delete AnimTex;
					num = strlen(val)+1;
			if (num &gt; 1) {
							AnimTex = new char[num];
							strcpy_s(AnimTex,num,val);
			}
			else { AnimTex = 0; }
		}
		else if (strcmp(name,&quot;ANIMTEXTUREFLAGS&quot;) == 0) {
			AnimTexFlag = atoi(val);
		}
		else if (strcmp(name,&quot;FRAMEWIDTH&quot;) == 0) {
			FontProperty.FrameWidth = atoi(val);
		}
		else if (strcmp(name,&quot;FRAMEHEIGHT&quot;) == 0) {
			FontProperty.FrameHeight = atoi(val);
		}
		else if (strcmp(name,&quot;FRAMECOUNT&quot;) == 0) {
			FontProperty.FrameCount = atoi(val);
		}
		else if (strcmp(name,&quot;WIDTH&quot;) == 0) {
			FontProperty.Width = atoi(val);
		}
		else if (strcmp(name,&quot;HEIGHT&quot;) == 0) {
			FontProperty.Height = atoi(val);
		}
		else if (strcmp(name,&quot;FIRSTCHAR&quot;) == 0) {
			FontProperty.FirstChar = atoi(val);
		}
		else if (strcmp(name,&quot;KERNING&quot;) == 0) {
			FontProperty.Kerning = atoi(val);
		}
		else {
			num = atoi(name);
			if (-1 &lt; num &amp;&amp; num &lt; 256) {
				FontProperty.Chars[num] = atoi(val);
			}
		}
	}

	file.close();
	int ImgFont = 0;

	num = strlen(AnimTex);
	if (num&gt;0 &amp;&amp; FontProperty.FrameWidth&gt;0 &amp;&amp; FontProperty.FrameHeight&gt;0 &amp;&amp; FontProperty.FrameCount&gt;0) {
		const char* tmp = filename;
		const char* slash;
		char* path;
		do { slash = strchr(tmp,'/'); if (slash) tmp = slash + 1; } while(slash);
		bool clear = false;
		if (tmp != filename) {
			int len = ((int)(tmp - filename))/sizeof(char);
			path = new char[len + num + 1];
			strncpy_s(path,len+1,filename,len);
			strcat_s(path,len+num+1,AnimTex);
			clear = true;
		} else { path = AnimTex; }
		if (flags == FI_SMOOTHFONT) flags = FI_FILTEREDIMAGE;
		else flags = FI_NONE;
		FontProperty.Image = LoadImageF(path, (AnimTexFlag &amp; 0x6) | 0x39, flags);
		ImgFont = pCreateImageFont(&amp;FontProperty);
		if (clear) delete path;
	}

	if (AnimTex) delete AnimTex;

	return(ImgFont);
}
</code></pre>
<p>dieser teil macht probleme</p>
<pre><code class="language-cpp">int cFIXorsBridge::CreateImage(int texture, int width, int height, int imageFlags) {
    if (texture) {
        int Array[256];
        sFI_Surfaces surf;
        surf.Texture = texture;
        surf.Array = Array;
        surf.Count = xGetTextureFrames(texture);
        if (surf.Count&gt;0) {
            if (surf.Count&gt;256) surf.Count=256;
            for(register int i=0; i&lt;surf.Count; i++) {
                surf.Array[i] = xGetTextureSurface(texture, i);
            }
            return(pCreateImageEx(&amp;surf, width, height, imageFlags));
        }
    }
    return(0);
}
</code></pre>
<p>der nachbau dieser funktion in anderen sprachen geht wegen dem hier</p>
<pre><code>return(pCreateImageEx(&amp;surf, width, height, imageFlags));
</code></pre>
<p>nicht.warum das so ist, weiß ich nicht, rätseln so einige.<br />
Nun ich als C++ noob, sehe oben ja auch noch mehrere includes.Die GetImageInfo dient zum laden der <a href="http://bilddateien.Im" rel="nofollow">bilddateien.Im</a> großen ganzen sollen bis auf die eine genannte funktion ( cFIXorsBridge::CreateImage(int texture, int width, int height, int imageFlags) ) exportiert werden, da diese nur intern noch von nutzen ist....benötigt um ein geladenes bild weiter zu verarbeiten.(edit GetCustomTransform und SetCustomTransform werden garnicht mehr benötigt)</p>
<p>1. ist es möglich daraus eine dll zu machen?<br />
2. was ist mit den ganzen anderen includes? (die habe ich alle....abhängigkeiten wären somit kein problem, nur wie umsetzen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1691159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1691159</guid><dc:creator><![CDATA[itmagic]]></dc:creator><pubDate>Sun, 05 Apr 2009 11:06:46 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in C++ schreiben on Sun, 05 Apr 2009 11:44:38 GMT]]></title><description><![CDATA[<p>Wenn ich dich richtig verstehe möchtest Du bestehenden C++ Code in eine DLL verpacken.</p>
<p>Diese DLL soll dann von verschiedenen Seiten (Sprachen, Platformen, ...) genutzt werden können.</p>
<p>Korrekt soweit?</p>
<p>Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1691188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1691188</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sun, 05 Apr 2009 11:44:38 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in C++ schreiben on Sun, 05 Apr 2009 11:48:02 GMT]]></title><description><![CDATA[<p>genau, weil der code, den du meinst wiederum eine andere dll lädt(und paar dinge noch aus einer anderen mit den includes oben(/x3d/...)</p>
<p>aber du hast es erfasst.<br />
eine dll für eine dll sozusagen, damit am ende zumindest eine funktion wegfällt(will später noch mehr am code ändern, aber dazu muss trotzdem erstmal eine dll her)</p>
<p>leider gibts wohl keine jobbörse hier, ich würd das ja auch machen lassen.brauchs halt dringend...weil ich wurschtel seit wochen mit der einbind der dll in andere sprachen, und das hier ist der letzte weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1691190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1691190</guid><dc:creator><![CDATA[itmagic]]></dc:creator><pubDate>Sun, 05 Apr 2009 11:48:02 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in C++ schreiben on Sun, 05 Apr 2009 12:24:38 GMT]]></title><description><![CDATA[<p>Poste doch mal im Projekte Forum. Ev. kannst da jmd motivieren, den Job zu übernehmen.</p>
<p>Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1691215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1691215</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sun, 05 Apr 2009 12:24:38 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in C++ schreiben on Sun, 05 Apr 2009 12:27:21 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Mal so nebenbei für welche andere Sprache brauchst du denn überhaupt die DLL weil es gibt ein paar unterschiedliche arten von Dlls.</p>
<p>zB du kannst die Dll als Funktionslibrary-Bauen, dann sind es einfach Funktionen die du in den anderen Sprachen hast. Oder du baust ne Com-Dll was bei weitem aufwendiger ist für die Dll, aber einfach für zB VB die Funktionen aufzurufen.</p>
<p>Edit: Welche Entwicklungsumgebung benutzt du?</p>
<p>Mfg Marco</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1691218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1691218</guid><dc:creator><![CDATA[Marc-O]]></dc:creator><pubDate>Sun, 05 Apr 2009 12:27:21 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in C++ schreiben on Sun, 05 Apr 2009 13:07:49 GMT]]></title><description><![CDATA[<p>also erstmal um zu der funktion zu kommen....<br />
in blitzbasic funktioniert es.Blitzmax im moment keine lösung gefunden, einen pointer da zu setzen auch keine chance, gibts einen memory <a href="http://fehler.in" rel="nofollow">fehler.in</a> glbasic geht es auch nur via inline C++.</p>
<blockquote>
<p>zB du kannst die Dll als Funktionslibrary-Bauen, dann sind es einfach Funktionen die du in den anderen Sprachen hast. Oder du baust ne Com-Dll was bei weitem aufwendiger ist für die Dll, aber einfach für zB VB die Funktionen aufzurufen.</p>
</blockquote>
<p>wie meinst du das?<br />
Also Funktionslibrary denke ich ist klar.Den Source umschreiben, daß die funktionen von anderen sprachen genutzt werden können.<br />
So meinte ich das auch.<br />
Was eine Com-Dll ist, weiß ich nun leider nicht.Aber hab mich grad schlau gemacht, eine Functionslibrary solls werden.</p>
<p>Und ja ich poste mal bei den Projekten, hab ich total übersehen....</p>
<p>Zur Entwicklungsumgebung...als C++ Beginner Visual Studio Express(hab aber grad erste Schritte gemacht, ansonsten BlitzMax, GLBasic, PureBasic und ab und an bisschen FreeBasic)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1691236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1691236</guid><dc:creator><![CDATA[itmagic]]></dc:creator><pubDate>Sun, 05 Apr 2009 13:07:49 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in C++ schreiben on Sun, 05 Apr 2009 13:08:09 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Kannst dich ja per Mail mal melden, wenn du mir dann noch sagst welche Entwicklungsumgebnung du hast kann ich dir heut abend zumindest ne Anweisung geben wie du ne Funktions-Dll erstellen kannst.</p>
<p>In sachzen COM, ist ne eigentheit von Microsoft. Wird hauptsächlich von VisualBasic benutzt. Weiter Infos findest du bei Google.</p>
<p>Mfg Marco</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1691243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1691243</guid><dc:creator><![CDATA[Marc-O]]></dc:creator><pubDate>Sun, 05 Apr 2009 13:08:09 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in C++ schreiben on Sun, 05 Apr 2009 13:20:49 GMT]]></title><description><![CDATA[<p>Also Visual C++ 2008 Express nutze ich.<br />
Allerdings komm ich noch nicht so perfekt zurecht da, hab erst angefangen.<br />
Aber da ich auch nen Haufen anderer Sprachen nutze finde ich mich eigentlich in jeder Entwiclungsumgebung relativ schnell zurecht.</p>
<p>Mail ist soeben raus, danke dir</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1691248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1691248</guid><dc:creator><![CDATA[itmagic]]></dc:creator><pubDate>Sun, 05 Apr 2009 13:20:49 GMT</pubDate></item></channel></rss>