Salut,
J'aimerai savoir comment importer un moteur 3d dans PureBasic ?
J'ai vu qu'on utilise des .pbi, mais y a-t-il un tuto ou autre chose qui explique la manoeuvre ?
Merci d'avance pour votre aide.
Importer un moteur 3d ?
-
wolfjeremy
- Messages : 1202
- Inscription : sam. 31/déc./2005 23:52
Ca ne demande aucune maitrise du C++, faire un wrapper d'un moteur 3D programmé en C++ ne consiste qu'à créer une instance de classe de chaque class du moteur.
Exemple, il y a une Class C++ Mesh, le wrapper se chargera de créer une instance de cette classe et exportera toutes les méthodes de cette classe.
C'est par contre un gros boulot car il existe pas mal de Class et autant de méthodes à wrapper.
Pour un exemple concret, télécharge jwsmtp, regarde un peu le code C++ et regarde ce que j'ai fait pour l'utiliser en PB :
Exemple, il y a une Class C++ Mesh, le wrapper se chargera de créer une instance de cette classe et exportera toutes les méthodes de cette classe.
C'est par contre un gros boulot car il existe pas mal de Class et autant de méthodes à wrapper.
Pour un exemple concret, télécharge jwsmtp, regarde un peu le code C++ et regarde ce que j'ai fait pour l'utiliser en PB :
Code : Tout sélectionner
#include <iostream>
#include <assert.h>
#include "jwsmtp/jwsmtp.h"
#ifdef __cplusplus
extern "C" {
#endif
#define API __stdcall
#define EXPORTAPI __declspec(dllexport)
typedef struct mail_info {
const char * toAddress;
const char * fromAddress;
const char * subject;
const char * message;
const char * server;
unsigned short Port;
bool mxLookup;
}mail_info;
using namespace jwsmtp;
EXPORTAPI mailer * API PB_jwSMTP_Create(mail_info * info )
{
mailer * m = new mailer(info->toAddress, info->fromAddress, info->subject, info->message, info->server, info->Port, info->mxLookup);
assert(m);
return m;
}
EXPORTAPI void API PB_jwSMTP_Destroy(mailer * m)
{
assert(m);
delete m;
m = NULL;
}
EXPORTAPI void API PB_jwSMTP_Send(mailer *m)
{
m->send();
}
EXPORTAPI void API PB_jwSMTP_Attach(mailer *m, const char * filename)
{
const std::string& s = filename;
m->attach(s);
}
EXPORTAPI void API PB_jwSMTP_RemoveAttachment(mailer *m, const char * filename)
{
const std::string& s = filename;
m->removeattachment(s);
}
EXPORTAPI bool API PB_jwSMTP_SetMessage(mailer *m, const char * newmessage)
{
const std::string& s = newmessage;
return m->setmessage(s);
}
EXPORTAPI bool API PB_jwSMTP_SetMessageHTML(mailer *m, const char * newmessage)
{
const std::string& s = newmessage;
return m->setmessageHTML(s);
}
EXPORTAPI bool API PB_jwSMTP_SetMessageHTMLfile(mailer *m, const char * filename)
{
const std::string& s = filename;
return m->setmessageHTMLfile(s);
}
EXPORTAPI bool API PB_jwSMTP_SetSubject(mailer *m, const char * newSubject)
{
const std::string& s = newSubject;
return m->setsubject(s);
}
EXPORTAPI bool API PB_jwSMTP_SetServer(mailer * m, const char * nameserver_or_smtpserver)
{
const std::string& s = nameserver_or_smtpserver;
return m->setserver(s);
}
EXPORTAPI bool API PB_jwSMTP_SetSender(mailer * m, const char * newsender)
{
const std::string& s = newsender;
return m->setsender(s);
}
EXPORTAPI bool API PB_jwSMTP_AddRecipient(mailer * m, const char * newrecipient, short recipient_type /*CC, BCC*/)
{
const std::string& s = newrecipient;
return m->addrecipient(s, recipient_type);
}
EXPORTAPI bool API PB_jwSMTP_RemoveRecipient(mailer * m, const char * recipient)
{
const std::string& s = recipient;
return m->removerecipient(s);
}
EXPORTAPI void API PB_jwSMTP_ClearRecipients(mailer * m)
{
m->clearrecipients();
}
EXPORTAPI void API PB_jwSMTP_ClearAttachments(mailer * m)
{
m->clearattachments();
}
EXPORTAPI void API PB_jwSMTP_Reset(mailer * m)
{
m->reset();
}
EXPORTAPI const char * API PB_jwSMTP_Response(mailer * m)
{
return m->response().data();
}
/*
void API jwSMTP_AuthType(mailer * m, const enum authtype Type)
{
m->authtype(Type);
}
*/
EXPORTAPI void API PB_jwSMTP_UserName(mailer * m, const char * User)
{
const std::string& s = User;
m->username(s);
}
EXPORTAPI void API PB_jwSMTP_Password(mailer * m, const char * Pass)
{
const std::string& s = Pass;
m->password(s);
}
#ifdef __cplusplus
}
#endif
"Qui baise trop bouffe un poil." P. Desproges
-
wolfjeremy
- Messages : 1202
- Inscription : sam. 31/déc./2005 23:52