See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: [tutorial] Posez vos question sur les DLL C++  (Read 84492 times)

0 Members and 2 Guests are viewing this topic.

Offline Schimz

  • Legend
  • ******
  • Posts: 1598
  • Karma: 1
Reply #300 - 19 August 2007, 22:14:03
C'est VC++ 2005 express (pourquoi 2008 ?...)
Comme il veut pas s'installer si y'a un produit prétendent d'installé (VC++2003 pour moi), je converti l'ancien projet avec
le nouveau VC++. L'importation du projet marche pas, j'ai donc construit un nouveau projet avec les sources et ressources de
l'ancien



Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #301 - 19 August 2007, 22:28:26
Quote
Schimz wrote:
C'est VC++ 2005 express (pourquoi 2008 ?...)

pour ca:

Quote
Schimz wrote:
Je suis en train de convertir le DGex sur VC++2008.


Quote
Schimz wrote:
Comme il veut pas s'installer si y'a un produit prétendent d'installé (VC++2003 pour moi), je converti l'ancien projet
avec le nouveau VC++. L'importation du projet marche pas, j'ai donc construit un nouveau projet avec les sources et
ressources de l'ancien

C'est vraiment un peu confus (pretendent ? ;) )
pour etre sur que j'ai compris, corrige moi si une proposition est fausse:

1-VC Express veut pas s'installer sur VC 2003 tu à donc desinstallé VC 2003 avant de l'installer
2-Mon exemple compile très bien sur ton VC express (donc tes libs sont bonne)
3-La conversion de ton projets de 2003 en 2005 echoue, ca ne marche pas.
4-Quand tu crée un projet depuis scratch pour inclure tes sources tu à tout ces problèmes.

Si c'est ca, ouvre mon exemple dans un VC express, ouvre ton nouveau projet dans un autre VC express et compare
ligne à ligne les settings de compilation (code et link). A part unicode il doit y avoir deux ou trois autre trucs pas bon.

Il te manque aussi peut etre quelques déclaration de libs que mon exemple ne montre pas car pas besoins pour
l'exemple, regarde dans le tuto "panel" c'est expliqué au début:
http://orbiter.dansteph.com/forum/index.php?topic=6358.msg95704#msg95704

Courage ;)

Dan


Offline Schimz

  • Legend
  • ******
  • Posts: 1598
  • Karma: 1
Reply #302 - 20 August 2007, 17:33:42
Peut être les fichier cpp et h générés par VC qui plantent le souk. Je ferais mieux de prendre ton projet ready-to
et le mettre à jour avec mes sources.
Quote
pour ca:
Vi, c'est que je me demandais pourquoi j'ai écrit 2008
ah, en fait c'est pour ça : http://msdn2.microsoft.com/fr-fr/express/aa975050.aspx c'est toujours VC++2005 mais son petit nom
c'est Visual Studio 2008 Express Editions Beta 2
Quote
C'est vraiment un peu confus (pretendent ? ;) )
précédemment :o Oué, fatigué (j'ai sauté dans mon lit juste après mon post :) )



Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #303 - 20 August 2007, 19:01:30
Quote
Schimz a écrit:
Peut être les fichier cpp et h générés par VC qui plantent le souk. Je ferais mieux de prendre ton projet ready-to
et le mettre à jour avec mes sources.

Sois ca sois tu met à jour les settings en comparant, oublie pas les libs supplémentaire (voir tuto panel) si ca continue
à planter, vu que tu utilise les panels...

A++

Dan


Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #304 - 22 August 2007, 15:56:52
J'ai une tite question ... je rajoute cette ligne dans mon me262.h

Quote
enum VerriereStatus { VERRIERE_CLOSED, VERRIERE_OPEN, VERRIERE_CLOSING, VERRIERE_OPENING }
verriere_status;

Je compile, pas de soucis, j'en ai d'autres qui marchent très bien.
Je copie ma dll, je lance orbiter, et là CTD direct ....

Je vire le enum, je recompile et ça remarche ....

une idée ?? Je bloque depuis des heures et je vois aps ce qui cloche ...

Edit : lorsque je rajoute une variable en double, genre "double verriere_proc;", ça plante ... J'y pige que dalle ....
ReEdit : Bon, en fait, dès que je rajoute une variable (int, double, enum ... peut importe), ca compile bien, mais dans orbiter, CTD au lancement ...
Pourtant mon fichier .h est comme tous les autres que j'ai déjà fait ... donc là, je rame ...



Message modifié ( 22-08-2007 18:05 )


Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #305 - 22 August 2007, 18:37:49
Bon, ca marche ... mais j'ai du déclaré dans le fichier cpp ... bizarre qd même ....


Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #306 - 23 August 2007, 01:59:45
si ca marche ;)

C'était en dehors de la clase la declaration... ?
Bizarre, effet induit? plantée ailleurs ?

Dan


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #307 - 23 August 2007, 07:28:39

Les enums, il faut les faire en dehors de la classe non ?


Pic

Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #308 - 23 August 2007, 10:13:57
Bah j'en ai 2 dans mon fichier .h et du coup, la troisième, j'ai du la mettre tout en haut de mon fichier Cpp ... autant
dire que ça revient à le mettre dans mon .h sauf que là ça marche .... bizarre ... j'essaierais de comprendre à
l'occasion ...


Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #309 - 23 August 2007, 14:13:42
Note une chose, donner le meme nom en haut et en bas c'est pas top a mon avis...
j'ai deja eu des bizarreries avec ce genre de chose. En plus tu peu redeclarer
une variable avec le meme nom , ca compile !!!???

Code: [Select]
enum VerriereStatus
{
VERRIERE_CLOSED,
VERRIERE_OPEN,
VERRIERE_CLOSING,
VERRIERE_OPENING
}verriere_status;
int VerriereStatus=0;

J'essaierais dans le genre pour voir:

Code: [Select]
enum
{
VERRIERE_CLOSED,
VERRIERE_OPEN,
VERRIERE_CLOSING,
VERRIERE_OPENING
}VERRIERE_STATUS;

Dan


Offline Schimz

  • Legend
  • ******
  • Posts: 1598
  • Karma: 1
Reply #310 - 23 August 2007, 17:28:59
Quote
DanSteph a écrit:
Sois ca sois tu met à jour les settings
J'ai pas testé, j'étais occupé sur un énorme trou de sécurité sur un site :ptdr:

(en dev heureusement)



Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #311 - 23 August 2007, 18:14:02
Nan, en fait, j'avais tapé ça :

Quote
enum VerriereStatus
{
   VERRIERE_CLOSED,
   VERRIERE_OPEN,
   VERRIERE_CLOSING,
   VERRIERE_OPENING
}verriere_status;
double Verriere_proc=0;

Ca marchait niquel pour d'autres "enum" ...
Mais en fait, c'est pas vraiment le type qui plante .. en fait, dès que je modifiais mon .h, en rajoutant une variable, ou
en regroupant plusieurs variables sur une ligne :
au lieu de :

double var1;
double var2;

en

double var1,var2;
Après compil', CTD sous orbiter .... Parfois même juste en rajoutant des lignes à blanc ... complètement
incompréhensible ...
Bref, problème résolu, j'ai fait un copier/coller d'un autre .h, j'ai modifié 2 ou 3 paramètre sans ajouter de variable pas
nécessaire. Et je fais directement les modifs dans mon fichier cpp.
Là, no soucy ... faut pas chercher des fois ... chui programmeur depuis des années, j'avoue que maintenant, y'a les
mystères de l'informatique qu'il faut des fois pas chercher à comprendre ... ;)


Offline Schimz

  • Legend
  • ******
  • Posts: 1598
  • Karma: 1
Reply #312 - 25 August 2007, 16:59:51
Encore des erreurs :sad:





Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #313 - 25 August 2007, 18:30:20
Dans ce genre de cas tu prend un mot clé manquant genre Loadbitmap et tu presse F1
en principe doit apparaitre une page dans le genre:

http://msdn2.microsoft.com/en-us/library/ms532309.aspx

En bas sous "Requirements"

Header: Declared in Winuser.h; include Windows.h.
Library: Use User32.lib.


A tu inclu les libs supplémentaires comme indqué dans le tuto "panel" ?

Dan


Offline Schimz

  • Legend
  • ******
  • Posts: 1598
  • Karma: 1
Reply #314 - 25 August 2007, 19:13:47
Quote
A tu inclu les libs supplémentaires comme indqué dans le tuto "panel" ?
Oui



Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #315 - 25 August 2007, 20:03:42

Et la modif que vous m'aviez faire à la main dans odbc32.lib
ou quelque chose d'approchant ( odbcbcp32.lib ou odbcpp32.lib )
avec NoMatter ?

Pour ajouter des liens qui ne se faisaient pas entre MSVC et PlatformSDK.
Justement parce que tout ca qui avait avoir avec le GDI ne compilait pas.

Ca pourrait pas être un problème dans le genre ?


Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #316 - 25 August 2007, 20:11:35
T'a un caca dans les settings ou les libs de toute facon, il trouve pas les symbole de linkage
qui sont normalement dans User32.lib.

Post voir tes setting de: project->DeltaGliderEx properties->C++->commande line
Et aussi: project->DeltaGliderEx properties->linker->commande line

Dan


Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #317 - 25 August 2007, 20:17:05
Quote
picto a écrit:
Et la modif que vous m'aviez faire à la main dans odbc32.lib
ou quelque chose d'approchant ( odbcbcp32.lib ou odbcpp32.lib )
avec NoMatter ?

C'est les libs qui sont dans le tuto panel justement...

Dan


Offline Schimz

  • Legend
  • ******
  • Posts: 1598
  • Karma: 1
Reply #318 - 26 August 2007, 09:25:58
J'ai trouvé, j'avais mal formé la ligne de répertoire des liens pour les Libs
ça finissait par .../Include, forcément ça avait du mal à compiler. :badsmile:   

(patapé) :siffle:

Bon, en tout cas, ayé, ça compile et ça marche.



Message modifié ( 26-08-2007 09:26 )


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #319 - 26 August 2007, 09:29:55

Sitapé :)

Super !
C'est reparti du bon pied du coup !
T'avais les nerfs hein ? L'ordi n'a pas trop volé à travers la pièce ?


Pic

Offline siriusfett

  • Legend
  • ******
  • Posts: 968
  • Country: France fr
  • Karma: 5
Reply #320 - 24 September 2007, 17:29:12
Je me suis lancé dans la transposition de ton code Dan, pour l'adapter à ma nouvelle station, dans un premier temps j'ai créé
l'animation de la roue (aucun problème) j'ai voulu ensuite rajouté une deuxième anime pour l'antenne et la je ne peux plus
compilé.

Quote
1>clbkConsumeBufferedKey.obj : error LNK2019: symbole externe non résolu "public: void __thiscall
MonAddon::Revertant(void)" (?Revertant@MonAddon@@QAEXXZ) référencé dans la fonction "public: virtual int __thiscall
MonAddon::clbkConsumeBufferedKey(unsigned long,bool,char *)" (?clbkConsumeBufferedKey@MonAddon@@UAEHK_NPAD@Z)
1>F:\Jeux\Copie de Orbiter 2006 propre\Modules\Ess.dll : fatal error LNK1120: 1 externes non résolus

Quote
if(key==OAPI_KEY_K)                         
   {
      Revertroue();
      Revertant();
      return 1;
   }

J'ai fait des recherches sur le net et d'après se que j'ai compris il me manquerait une lib dans les dépendances
supplémentaires, mais je ne trouve pas laquelle !!!



Message modifié ( 24-09-2007 17:32 )


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #321 - 24 September 2007, 17:49:46
Quote
Oups pardon ... j'avais mis une connerie sur la déclaration de ta fonction, mais je vois qu'elle est faite.
Mais une chose qui est sure, c'est que ce n'est pas un problème de lib.
Pour t'en convaincre, décommente un des callback Orbiter sur le template sans commencer à
écrire la fonction dans un cpp ensuite, tu aura la même erreur de compile.

RE EDIT

J'avais pas dit une connerie donc ... ;)



Message modifié ( 24-09-2007 20:12 )

Pic

Offline siriusfett

  • Legend
  • ******
  • Posts: 968
  • Country: France fr
  • Karma: 5
Reply #322 - 24 September 2007, 17:55:14
Quote
picto a écrit:
Oups pardon ... j'avais mis une connerie sur la déclaration de ta fonction, mais je vois qu'elle est faite.

J'en fais beaucoup, mais comme même    :badsmile:

Edit:

En faite, oui j'en fait beaucoup :wall:



Message modifié ( 25-09-2007 00:07 )


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #323 - 24 September 2007, 17:58:53
Désolé :sad:
Poste tout ce qui concerne cette fonction ... ce sera plus facile pour voir d'ou viens ton problème...



Message modifié ( 24-09-2007 17:59 )

Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #324 - 24 September 2007, 19:55:32
Il te manque la delcaration dans la classe "void Revertant();"
ou le corp de fonction:

void MonAddon::Revertant()
{
    code
}


LA Methode mon gars !!!! :badsmile:

cherche dans Ceres "Revertant" tu verra partout ou cette fonction est declarée
et utilisée... ben voila il te manque un des trucs dans ta nouvelle station...

15 secondes pour trouver avec LA methode.... deux heures par le forum ;)

"Peu de mémoire beaucoup de méthode"
http://orbiter.dansteph.com/forum/index.php?topic=6337.msg95356#msg95356


PS ce serait plus simple a mon avis de copier le code Ceres et le modifier pour ta nouvelle
station que l'inverse... Ceres a beaucoup plus de code que ta station.

A++

Dan



Message modifié ( 24-09-2007 20:19 )