|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : avril 2008 Messages : 89 ![]() |
Bonjour à tous,
suite à un précédent post sur ce forum, j'aimerai développé des fonctions C pour ma BDD. Je dois donc créé une bibliothèque partagée (extension .so). Je voulais savoir si ces bibliothèques sont supporté par Win32 (ma question révéle sûrement mon manque de compréhension à ce sujet)... Si c'est le cas, est-il possible de développer une bibliothèque C partagée sous un environnement Win32 en utilisant Visual C++ ? Quels type de projet dois-je choisir ? Quelles options passer au compilo ? Merci à tous. |
|
|
00
|
|
|
#2 |
|
Inactif
![]() Inscription : novembre 2004 Messages : 247 ![]() |
Bonjour
De la .so chez Bill ??? Vous cherchez le mouton a cinq pattes... Cordialement |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : avril 2008 Messages : 89 ![]() |
Bonjour bustaf.
Suite au lien que tu m'avais donné pour l'écriture des fonctions C sous postgresql j'ai bêtement cherché à appliquer la méthode pour Linux or je suis sous Bill ... enfin façon de parler ;-) Peux-tu m'aider un peu ? En fait j'imagines qu'il faut que je crée une DLL (pas de so donc) partagée qui contiennent mes fonctions C, puis que je l'appelles depuis postgre. Mais est-ce que cela fonctionnera ? La syntaxe d'import sera-t-elle la même etc... Aurais-tu par le plus grand des hazards de la documentation ou des liens (le précédent était super ormis qu'il est dédiés à tout les SE sauf Bill) qui justement explique comment faire les mêmes manip mais sous SE Bill -création de fonction C- ? J'ai beau fouiné partout je ne trouve pas et partir à l'aventure (créer une dll puis voir si je peux l'importer) me semble un peu risqué au niveau du rapport réussite/temps passé. En plus j'ai un peu de mal à compiler ma dll... mon #include 'postgre.h' engendre pas mal d'erreur de fichiers non trouvé... dois-je ajouter des bibliothèques statiques pour compiler ma dll ? Cordialement, |
|
|
00
|
|
|
#4 | ||||||||
|
Membre du Club
![]() Inscription : avril 2008 Messages : 89 ![]() |
Re,
j'ai un peu avancé mais au final je bloque. J'ai fait une DLL dont je donne le code ici. dll.h : Code :
Code :
Enfin quand je cherche à créer ma fonction C sous postgresql : Code :
Code :
Là je vois pas mais bon c'est pas la première fois ni la dernière... Peut-être que cela vient des options du compilo (je les ai laissé par défaut et ne suis pas sûr que je crée bien une librairie partagée) ou encore du fait que j'ai juste modifié (sans trop maitrisé) l'ossature de programme fourni par Dev Cpp... Si qq peut m'aider je prends. Merci. |
||||||||
|
|
00
|
|
|
#5 |
|
Inactif
![]() Inscription : novembre 2004 Messages : 247 ![]() |
Bonjour
Je veux bien vous aider mais le problème je n'ai pas de station Bill sous la main pour vous répondre de suite.. avec un exemple precis. (Bill n'a aucune connotation péjorative dans mon expression j'apprécie grandement les poduits Microsoft) essayez sans definir #ifdef PG_MODULE_MAGIC PG_MODULE_MAGIC; #endif Cordialement |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : avril 2008 Messages : 89 ![]() |
En fait j'ai déjà essayé (faute d'oubli) d'enlever le 'magic bloc' comme il l'appelle mais le résultat reste le même.
Du coup je suivrai ce post au cas où vous ayez le temps d'y regarder de plus près. En attendant je vais essayer différentes manips. PS : je n'ai pas non plus d'a priori sur le système windows (c'est l'OS sur lequel je passe 95 % de mon temps) (ormis quand je vois le prix des licences !!!! et l'acharnement des hackers sur cet OS en particulier) mais je regrette juste la difficulté parfois rencontré lorsqu'on utilise un logiciel initialement développé pour une autre plateforme. Ainsi, j'ai beaucoup de mal à trouver de la doc pour l'utilisation de postgre pour win spécifiquement et les tutoriaux sont presque inexistants. Ce qui est génant c'est qu'un développeur et souvent amené à se spécitialisé sur un système particulier. En quelque mots c'est plus le cloisonnement de chaque OS qui me gène. Mais peut-être qu'avec l'expérience les choses me paraîtront plus claires. |
|
|
00
|
|
|
#7 |
|
Inactif
![]() Inscription : novembre 2004 Messages : 247 ![]() |
J'ai regardé sur le net
Le problème peut se produire si la version de la lib utilisée pour la compi est differente de celle utilisée dans la version executable . ???? Cordialement. |
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : avril 2008 Messages : 89 ![]() |
Je suis fou de joie bustaf !!!
Du fait que tu m'as tenu en haleine j'ai cherché chrché et euréka j'ai compris que pour utiliser de C fonctions avec win il faut ABSOLUMENT utiliser la version V1 d'édition des fonctions. Du coup tout roule : j'ai une fonction add_one qui ajoute 1 à une donnée !!! C'est bidon mais faut avoué qu'avant de rentrer à la maison ça le fait... Merci pour tout. Ne pas être seul dans une galère est très encourageant. Si ça t'intéresse je poste le code. C'est un bon programme d'exemple pour créer une fonction C postgre sous Windows avec DevCpp. Merci et re merci encore. Bonne soirée. PS: si tu veux les codes n'hésite pas ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com