FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
KGF_dll - nouvelles versions Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
KGF_dll - nouvelles versions Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
KGF_dll - nouvelles versions Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
KGF_dll - nouvelles versions Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
KGF_dll - nouvelles versions Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
KGF_dll - nouvelles versions Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
KGF_dll - nouvelles versions Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
KGF_dll - nouvelles versions Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
KGF_dll - nouvelles versions Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
KGF_dll - nouvelles versions Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
KGF_dll - nouvelles versions Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
KGF_dll - nouvelles versions Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
KGF_dll - nouvelles versions Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
KGF_dll - nouvelles versions Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
KGF_dll - nouvelles versions Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G ...
Voir le deal
599 €

 

 KGF_dll - nouvelles versions

Aller en bas 
+6
papydall
Marc
jean_debord
Minibug
JP06
Klaus
10 participants
Aller à la page : 1, 2, 3 ... 8 ... 15  Suivant
AuteurMessage
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions Empty
MessageSujet: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyMer 4 Aoû 2021 - 16:22

KGF.dll V9.54 du 04/08/2021

Nouveautés:
- nouvelle fonction WebServerLimitClients

Modules modifiés:
KGF.dll
KGF.chm


Cette nouvelle fonction permet de définir un nombre maximum de clients pouvant se connecter simultanément.

Voici le programme de démo du serveur permettant de jouer avec cette limite (le client n'est pas modifié):
Code:
' test_WinServer.bas

label creer, limiter, user_event

dim SRV%, res%, event_code%, s$, socket%, commande$, port%, limit%

width 0,700
caption 0,"WebServer"
button 1 : top 1,10 : left 1,200 : caption 1,"Créer serveur" : on_click 1,creer
alpha 10 : top 10,40 : left 10,10 : caption 10,"Log des évènements:"
memo 11 : top 11,60 : left 11,10 : width 11,300 : height 11,300 : bar_both 11
alpha 12 : top 12,40 : left 12,320 : caption 12,"Info associée:"
edit 13 : top 13,60 : left 13,320 : width 13,300
alpha 14 : top 14,10 : left 14,10 : caption 14,"Port:"
spin 15: top 15,10 : left 15,40 : width 15,100 : min 15,1024 : max 15,9000 : text 15,2000
alpha 16 : top 16,90 : left 16,320 : caption 16,"Clients connectés:"
memo 17 : top 17,110 : left 17,320 : width 17,300 : height 17,250 : bar_both 17
alpha 21 : top 21,385 : left 21,10 : caption 21,"Limitation de connexions (-1=pas de limitation):"
spin 22 : top 22,380 : left 22,250 : width 22,100 : min 22,-1 : max 22,999999 : text 22,"-1"
button 23 : top 23,380 : left 23,360 : caption 23,"Limiter" : on_click 23,limiter

dll_on "KGF.dll"
on_user_event user_event

end

creer:
  port% = val(text$(15))
  SRV% = dll_call2("CreateWebServer",port%,handle(13))
  return
 
limiter:
  if SRV%=0 then return
  limit% = val(text$(22))
  res% = dll_call2("WebServerLimitClients",SRV%,limit%)
  message "La limite précédente était "+str$(res%)
  return
 
user_event:
  if bin_and(user_event_WParam,hex("FF000000"))=hex("14000000")
    event_code% = bin_and(user_event_WParam,hex("00FF0000"))/65536
    select event_code%
      case 1
        item_add 11, right$("00000"+hex$(user_event_wparam),8)+"  "+right$("00000"+hex$(user_event_lparam),8)+"  Connexion client acceptée"
      case 2
        item_add 11, right$("00000"+hex$(user_event_wparam),8)+"  "+right$("00000"+hex$(user_event_lparam),8)+"  Nouveau client connecté"
        clear 17
        res% = dll_call2("WebServerGetClients",SRV%,handle(17))
      case 3
        item_add 11, right$("00000"+hex$(user_event_wparam),8)+"  "+right$("00000"+hex$(user_event_lparam),8)+"  Client déconnecté"
        clear 17
        res% = dll_call2("WebServerGetClients",SRV%,handle(17))
      case 4
        item_add 11, right$("00000"+hex$(user_event_wparam),8)+"  "+right$("00000"+hex$(user_event_lparam),8)+"  Demande à Panoramic"
        socket% = user_event_lparam
        commande$ = text$(13)
        s$ = "Désolé, je ne comprends pas..."+chr$(13)+chr$(10)+"Tapez Panoramic,?"
        ' *** traitement spécifique des commandes
        if commande$="Quel est ton nom ?"
          s$ = "Je m'appelle WinServer"
        end_if
        if commande$="Quel est ta date de naissance ?"
          s$ = "Je suis né le 29 Juillet 2021"
        end_if
        if commande$="Quel est ton créateur ?"
          s$ = "J'ai été créé par Klaus"
        end_if
        if commande$="?"
          s$ = "Je comprends les commandes suivantes:"+chr$(13)+chr$(10)
          s$ = s$ + "Quel est ton nom ?"+chr$(13)+chr$(10)
          s$ = s$ + "Quel est ta date de naissance ?"+chr$(13)+chr$(10)
          s$ = s$ + "Quel est ton créateur ?"+chr$(13)+chr$(10)
        end_if
        ' *** fin du traitement spécifique des commandes
        res% = dll_call3("WebServerReplyToClient",SRV%,socket%,adr(s$))
      case 5
        item_add 11, right$("00000"+hex$(user_event_wparam),8)+"  "+right$("00000"+hex$(user_event_lparam),8)+"  Serveur à l'écoute"
        clear 17
        res% = dll_call2("WebServerGetClients",SRV%,handle(17))
      case 6
        item_add 11, right$("00000"+hex$(user_event_wparam),8)+"  "+right$("00000"+hex$(user_event_lparam),8)+"  Client demande n fichier"
      case 7
        item_add 11, right$("00000"+hex$(user_event_wparam),8)+"  "+right$("00000"+hex$(user_event_lparam),8)+"  Erreur dans connexion client"
    end_select
  end_if
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JP06




Nombre de messages : 20
Age : 74
Date d'inscription : 01/01/2012

KGF_dll - nouvelles versions Empty
MessageSujet: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyMer 4 Aoû 2021 - 17:20

Merci Klaus. Quelle réactivité ! plus qu'a tester...
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyJeu 5 Aoû 2021 - 1:07

KGF.dll V9.55 du 05/08/2021

Nouveautés:
- nouvelle fonction WebServerDisconnectClient

Modules modifiés:
KGF.dll
KGF.chm


La doc est à jour.

Cette fonction permet au serveur de déconnecter un client de façon autoritaire. Dan sle programme de démo adapté ci-après, le client à déconnecter est sélectionné dans la liste des clients connectés en cliquant sur une des lignes, puis en cliquant sur le bouton "Déconnecter". Le serveur demande une confirmation, et, en cas de réponse positive, le client est déconnecté. On voit qu'il disparaît de la liste des clients connectés dans le serveur, et la fenêtre du client concerné sigane également la déconnexion, alors que les autres clients restent connectés. La démo du client reste inchangée.

Le serveur:
Code:
' test_WinServer.bas

label creer, limiter, deconnecter, user_event

dim SRV%, res%, event_code%, s$, socket%, commande$, port%, limit%, index%, client%, p%

width 0,800
caption 0,"WebServer"
button 1 : top 1,10 : left 1,200 : caption 1,"Créer serveur" : on_click 1,creer
alpha 10 : top 10,40 : left 10,10 : caption 10,"Log des évènements:"
memo 11 : top 11,60 : left 11,10 : width 11,300 : height 11,300 : bar_both 11
alpha 12 : top 12,40 : left 12,320 : caption 12,"Info associée:"
edit 13 : top 13,60 : left 13,320 : width 13,300
alpha 14 : top 14,10 : left 14,10 : caption 14,"Port:"
spin 15: top 15,10 : left 15,40 : width 15,100 : min 15,1024 : max 15,9000 : text 15,2000
alpha 16 : top 16,90 : left 16,320 : caption 16,"Clients connectés:"
' memo 17 : top 17,110 : left 17,320 : width 17,300 : height 17,250 : bar_both 17
list 17 : top 17,110 : left 17,320 : width 17,300 : height 17,250
button 18 : top 18,180 : left 18,630 : width 18,130 : caption 18,"Déconnecter sélectionné" : on_click 18,deconnecter
alpha 21 : top 21,385 : left 21,10 : caption 21,"Limitation de connexions (-1=pas de limitation):"
spin 22 : top 22,380 : left 22,250 : width 22,100 : min 22,-1 : max 22,999999 : text 22,"-1"
button 23 : top 23,380 : left 23,360 : caption 23,"Limiter" : on_click 23,limiter

dll_on "KGF.dll"
on_user_event user_event

end

creer:
  port% = val(text$(15))
  SRV% = dll_call2("CreateWebServer",port%,handle(13))
  return
 
limiter:
  if SRV%=0 then return
  limit% = val(text$(22))
  res% = dll_call2("WebServerLimitClients",SRV%,limit%)
  message "La limite précédente était "+str$(res%)
  return
 
deconnecter:
  index% = item_index(17)
  if index%<2
    message "Aucun client n'est sélectionné"
    return
  end_if
  s$ = item_read$(17,index%)
  if message_confirmation_yes_no("Céconnecter "+s$+" ?")<>1 then return
  p% = instr_last(s$," ")
  s$ = Mid$(s$,p%+1,300)
  client% = val(s$)
  res% = dll_call2("WebServerDisconnectClient",SRV%,client%)
  return
 
user_event:
  if bin_and(user_event_WParam,hex("FF000000"))=hex("14000000")
    event_code% = bin_and(user_event_WParam,hex("00FF0000"))/65536
    select event_code%
      case 1
        item_add 11, right$("00000"+hex$(user_event_wparam),8)+"  "+right$("00000"+hex$(user_event_lparam),8)+"  Connexion client acceptée"
      case 2
        item_add 11, right$("00000"+hex$(user_event_wparam),8)+"  "+right$("00000"+hex$(user_event_lparam),8)+"  Nouveau client connecté"
        clear 17
        res% = dll_call2("WebServerGetClients",SRV%,handle(17))
      case 3
        item_add 11, right$("00000"+hex$(user_event_wparam),8)+"  "+right$("00000"+hex$(user_event_lparam),8)+"  Client déconnecté"
        clear 17
        res% = dll_call2("WebServerGetClients",SRV%,handle(17))
      case 4
        item_add 11, right$("00000"+hex$(user_event_wparam),8)+"  "+right$("00000"+hex$(user_event_lparam),8)+"  Demande à Panoramic"
        socket% = user_event_lparam
        commande$ = text$(13)
        s$ = "Désolé, je ne comprends pas..."+chr$(13)+chr$(10)+"Tapez Panoramic,?"
        ' *** traitement spécifique des commandes
        if commande$="Quel est ton nom ?"
          s$ = "Je m'appelle WinServer"
        end_if
        if commande$="Quel est ta date de naissance ?"
          s$ = "Je suis né le 29 Juillet 2021"
        end_if
        if commande$="Quel est ton créateur ?"
          s$ = "J'ai été créé par Klaus"
        end_if
        if commande$="?"
          s$ = "Je comprends les commandes suivantes:"+chr$(13)+chr$(10)
          s$ = s$ + "Quel est ton nom ?"+chr$(13)+chr$(10)
          s$ = s$ + "Quel est ta date de naissance ?"+chr$(13)+chr$(10)
          s$ = s$ + "Quel est ton créateur ?"+chr$(13)+chr$(10)
        end_if
        ' *** fin du traitement spécifique des commandes
        res% = dll_call3("WebServerReplyToClient",SRV%,socket%,adr(s$))
      case 5
        item_add 11, right$("00000"+hex$(user_event_wparam),8)+"  "+right$("00000"+hex$(user_event_lparam),8)+"  Serveur à l'écoute"
        clear 17
        res% = dll_call2("WebServerGetClients",SRV%,handle(17))
      case 6
        item_add 11, right$("00000"+hex$(user_event_wparam),8)+"  "+right$("00000"+hex$(user_event_lparam),8)+"  Client demande n fichier"
      case 7
        item_add 11, right$("00000"+hex$(user_event_wparam),8)+"  "+right$("00000"+hex$(user_event_lparam),8)+"  Erreur dans connexion client"
    end_select
  end_if
  return

Yannick aime ce message

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyDim 8 Aoû 2021 - 2:02

Rapport d'étape au sujet de WebServer:

Je suis en train de le rendre un peu plus "sûr"  pour un usage en réseau ouvert. En particulier, je lui ajoute l'option de login avec nom d'utilisateur et mot de passe. Le serveur de son côté gère un fichier des clients autorisés avec leurs noms et leurs mots de passe, et les clients pour leur part gèrent chacun des fichiers des serveurs connectables qui sont propres à chaque client, avec le host et le port de chaque serveur, ainsi que le nom de client à utiliser sur chacun de ces serveurs ainsi que le mot de passe à utiliser. Bien sûr, le choix reste au serveur autoriser la connexion libre ou d'exiger un login.

Evidemment, tous ces fichiers de listes de serveurs et de clients sont cryptés en ce qui concerne les noms des clients et les mots de passe. Il ne sert à rien de subtiliser un tel fichier - il ne pourra jamais être décrypté sur une autre macine. Et les noms des clients et leurs mots de passe ne sont jamais transmis en clair sur le réseau, mais uniquement de façon crypté lors de la procédure de login. Et même si ces messages sont interceptés, ils ne pourront pas être décryptés sur une autre machine.

La partie maintenance de ces fichiers est gérée en 100 % Panoramic, côté serveur et côté client. Par contre, le cryptage et le décryptage est fait par une fonction de la DLL. Cette dernière peut d'ailleurs être utlisée indépendemment du contexte client/serveur, dans d'autres programmes Panoramic.

Un autre point important: plusieurs serveurs différents peuvent cohabiter sur une même machine, à condition d'utiliser des ports différents. Une même machine peut également faire tourner plusieurs clients, tous connectés à un même serveur ou à des serveurs différents. Un même programme client peut également se connecter simultanément sur plusieurs serveurs différents, même si ces serveurs sont localisés sur des machines diférentes.

Bref, on peut parfaitement implémenter un réseau privé relié via internet ou réseau local, gérant des ressources partagées comme des bases de données, imprimantes, sauvegardes centralisées etc.

Le tout prend forme lentement, et j'aurai prochainement une permière version opérationnelle à présenter.

Yannick aime ce message

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyVen 22 Oct 2021 - 0:12

Rapport d'étape:
Je finalise en ce moment les composants WebServer et WebClient avec sécurisation, login,, liste de comptes autorisés et cryptage. Il y a encore un peu de travail mais ça progresse bien.

En attendant, j'ai finalisé la première version d'une intégration de la base de données SQLite3 dans KGF.dll. Je suis en train de rédiger la documentation ce qui est toujours un gros travail. L'idée est d'utiliser cette base à partir de WebServer et la rendre accessible à tous les programmes Panoramic, même distants via internet, à l'aide du composant WebClient. J'en avais donc besoin prioritairement pour finaliser les tests du système client/serveur.

Voici en avant-première la page d'accueil de l'aide des fonctions SQLite3:

Spoiler:

Et la liste des fonctions actuellement réalisées:
Spoiler:

Je publierai ces fonctioins dès que la doc sera finie.


Dernière édition par Klaus le Ven 22 Oct 2021 - 10:37, édité 1 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyVen 22 Oct 2021 - 7:21

Bonjour Klaus,
Je vois que tu ne perds pas ton temps. Sacré travail que tu fais là !   sunny  

Mais dis moi quel est l'intérêt d'embarquer la dll QLite3 dans KGF.dll ?
Pourquoi ne pas l'utiliser directement dans Panoramic comme les dll Windows.

Je suis très curieux de voir ce que l'on peut faire avec tout cela...
A bientôt pour la suite et bon courage Klaus. Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyVen 22 Oct 2021 - 10:03

Citation :
Mais dis moi quel est l'intérêt d'embarquer la dll QLite3 dans KGF.dll ?
Pourquoi ne pas l'utiliser directement dans Panoramic comme les dll Windows.
La réponse est simple. SQLite3.dll n'est pas nativement présent dans les systèmes Windows. Il faudrait donc la télécharger séparément et l'installer dans System32\... ou similaire.

Or, de multiples versions de SQLite existent, et on aurait vide des conflits de compatibilité.J'ai donc choisi une version "ancienne" (2009) pour laquelle Brice Mestressat a créé un adapteur Delphi le 22 Janvier 2009. J'ai donc simplement téléchargé la version SQLite3 qui va avec et je l'ai iintégrée dans KGF.dll afin d'éviter des conflits de version. Par ailleurs, le fait d'intégrer cette DLL dans KGF.dll rend son utilisation parfaitement transparente pour le programmeur Panoramic puisque KGF.dll se charge d'extraire et d'installer SQLite3.dll si elle est requise et de l'effacer après, automatiquement.

Certes, cette version de SQLite3 est ancienne. Mais elle est totalement gratuite quelqu'en soit l'usage, et parfaitement opérationnelle. Il y a bien des versions plus récentes, mais elles sont payantes, avec certes une version gratuite pour usage personnel, mais pas pour usage public. Ceci les rend inutilsables dans le cadre de KGF.dll que he publie, librement et gratuirement, pour tous usages. Cependant, les fonctions accessibles avec la version 3.6.7 de SQLite3 sont largement assez complètes et puissantes, même pour des utilisations professionnelles.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyVen 22 Oct 2021 - 13:27

Merci pour ta réponse Klaus.

Et y a t il beaucoup de fonctions sur SQLite3.dll et comptes tu toutes les intégrer à KGF.dll ?
Car j'imagine que c'est un sacré travail...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyVen 22 Oct 2021 - 13:53

Voici les fonctions de SQLite3.dll rendues accessibles par le wrapper que j'utilise:
Spoiler:

Comme du vois, il y en a beaucoup. Je suis loin d'avoir tout compris. Néanmoins, avec les quelques fonctions que j'ai implémentées à l'heure actuelle, je peux déjà:
- créer une nouvelle base de données vide
- ouvrir une base de données existante
- connaître le nombre et le nom des tables dans une base de données
- connaître le nombre et les noms des champs dans une table
- exécuter n'importe quelle requête SQL

Et ce dernier point est crucial, car il permet, entre autres:
- créer une nouvelle table
- ajouter un enregistrement dans une table en donnant les contenus des champs
- effectuer des recherches dans une table selon un critère quelconque et récupérer le ou les résultats contenus dans le résultat
- récupérer le contenu d'un champ d'un enregistrement résultat d'une recherche

Ce sont les capacités actuellement utilisées dans mon programme de démo. Mais même dans l'implémetation actuelle, cela va beaucoup plus loin. Les requêtes SQL permettent de supprimer un ou plusieurs enregistrements résultats d'une recherche, de modifier le contenu des champs d'enregistrements résultats d'une recherche, de suprimer une table entièrement, etc. Et tout ceci en mettant à jour automatiquement les indexes si le contenu des champs concernés a change.

Beaucoup de choses sont possibles, même déjà avec les quelques fonctions SQLite3 que j'ai rendues accessibles. Et vue l'architecture que j'ai créée, on pourra aller beaucoup plus loin très facilement. Une fonctioin existant dans SQLite3.dll nécessaire à un Panoramicien et non accssible via KGF.dll ? Rien de plus simple: l'ajout se fait en un quart d'heure, la documentation en 1 heure, la génération de la nouvelle documentation prend 2 heures, puis et la distribution de la nouvelle DLL et de la documentation en format CHM et en ligne se fait en 2 heures. Bref, il faut 1 journée.
En fait, tout se joue au niveau du langage SQL. C'est un véritable langage de sriptage, et je donnerai, lors de la publication de la nouvelle version, des liens vers une documentation en ligne sérieuse pour ce langage.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyVen 22 Oct 2021 - 14:52

Waouh effectivement c'est du lourd !!! Laughing Laughing

Ok. Merci pour toutes ces infos Klaus. Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptySam 23 Oct 2021 - 9:09

J'ai récupéré la DLL SQLite3.dll (version 3.36.0) sur https://sqlite.org/download.html

Elle semble bien fonctionner avec FreeBASIC.

Si cela intéresse quelqu'un, je pourrais essayer de faire un ADDON pour FBCroco.

Ouf_ca_passe aime ce message

Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyDim 24 Oct 2021 - 12:28

KGF.dll V9.56 du 24/10/2021

Nouveautés:
- nouvel objet SQLite3

Modules modifiés:
KGF.dll
KGF.chm


La doc est à jour.

Ceci est une véritable base de données de type SQL organisée en tables ayant des lignes composées de champs, multi-utilisateur, avec des indexes multibles, gestion de transactions etc. Pour cette première implémentation, une sélection restreints parmi les multiples fonctions de cette base de données est rendue accessible via cet objet. Mais elle permet déjà d'exloiter les fonctions essentielles. Cette sélection s'enrichira au fur et à mesure.

Ci-après, un programme de démo montre l'usage de cet objet. L'interface visuel se présente ainsi:
KGF_dll - nouvelles versions Aa173

Le programme est géré par des menus. Il faut faire, dans l'ordre:

- fichier \ Ìnitialize SQLite3   ==> sqlite3.dll est extrait de KGF.dll et placé dans le dossier du EXE Panoramic
le numéro de version de sqlite3.dll est affiché
- fichier \ OPen SQLite3  ==> une base de données TestTable.db vide est créé.
- sample scripts SQL \ Create sample table  ==> une requête SQL créant une table de démo est placée dans le mémo du bas
- Execute scripts SQL \ Execute script from memo  ==> la requête affichée dans le mémo est exécutée.
Une tablle TestTable est créée avec un format spécifiant 5 champs.
- Execute scripts SQL \ Fill data base ==> la base de données est chargée par un certain nombre d'enregistrements contenant des données aléatoires
placer "%" dans le champ "critère" en haut à droite (sans les guillemets)
- Execute scripts SQL \ Fill grid from database  ==> remplir de GRID à droite par le contenu de la base
placer "S%" dans le champ "critères" (sans les guillemets) et refaites l'opération  ==> seules les lignes commençant par "S" s'afficheront
- Execute scripts SQL \ Get table names in database  ==> dans le mémo en haut à droite, on a la liste des tables (1 seule)
Placer "TestTable" dans la zone "Critères" en haut à droite (sans les guillemets)
- Execute scripts SQL \ Get column names in table 'critère' ==> la liste des champs de la table avec leurs caractéristiques s'affiche dans le mémo en haut

Voici le programme:
Code:
' test_SQLite3.bas

label init, open, close, reset, exit
label sample1
label start, exec, commit, rollback, fill, fillgrid, tables, columns

dim res%, base$, SQL%, xNbrRecords%, x%, sOtherID$, sName$, sNumber$
dim p%, sNotes$, sSQL$, RowCount%, TestTable$, i%, j%, s$
  TestTable$ = "TestTable"

full_space 0 : on_close 0,exit

main_menu 1
  sub_menu 11 : parent 11,1 : caption 11,"File"
    sub_menu 111 : parent 111,11 : caption 111,"Initialize SQLite3" : on_click 111,init
    sub_menu 112 : parent 112,11 : caption 112,"Open SQLite3" : on_click 112,open
    sub_menu 113 : parent 113,11 : caption 113,"Close SQLite3" : on_click 113,close
    sub_menu 114 : parent 114,11 : caption 114,"Reset SQLite3" : on_click 114,reset
    sub_menu 115 : parent 115,11 : caption 115,"-"
    sub_menu 116 : parent 116,11 : caption 116,"Exit" : on_click 116,exit
  sub_menu 12 : parent 12,1 : caption 12,"Sample scripts SQL"
    sub_menu 121 : parent 121,12 : caption 121,"Create sample table" : on_click 121,sample1
  sub_menu 13 : parent 13,1 : caption 13,"Execute scripts SQL"
    sub_menu 131 : parent 131,13 : caption 131,"Start transaction" : on_click 131,start
    sub_menu 132 : parent 132,13 : caption 132,"Execute script from memo" : on_click 132,exec
    sub_menu 133 : parent 133,13 : caption 133,"Commit transaction" : on_click 133,commit
    sub_menu 134 : parent 134,13 : caption 134,"Rollback transaction" : on_click 134,rollback
    sub_menu 135 : parent 135,13 : caption 135,"-"
    sub_menu 136 : parent 136,13 : caption 136,"Fill data base" : on_click 136,fill
    sub_menu 137 : parent 137,13 : caption 137,"Fill grid from data base" : on_click 137,fillgrid
    sub_menu 138 : parent 138,13 : caption 138,"Get table names in data base" : on_click 138,tables
    sub_menu 139 : parent 139,13 : caption 139,"Get column names in table 'Critère'" : on_click 139,columns
    

alpha 1000 : top 1000,10 : left 1000,10 : caption 1000,"Réponse de SQLite3:"
memo 1001 : top 1001,30 : left 1001,10 : width 1001,500 : height 1001,300 : bar_both 1001

alpha 1010 : top 1010,350 : left 1010,10 : caption 1010,"Script SQL:"
memo 1011 : top 1011,370 : left 1011,10 : width 1011,500 : height 1011,300 : bar_both 1011

progress_bar 1020 : top 1020,680 : left 1020,10 : width 1020,500

alpha 1030 : top 1030,10 : left 1030,540 : caption 1030,"Critère:"
edit 1031 : top 1031,10 : left 1031,600 : width 1031,300
  text 1031,"A%"
alpha 1032 : top 1032,40 : left 1032,540 : caption 1032,"Paramètre:"
edit 1033 : top 1033,40 : left 1033,600 : width 1033,300
  text 1033,"ORDER BY OtherID ASC"
grid 1034 : top 1034,70 : left 1034,540 : width 1034,500 : height 1034,300
  grid_column 1034,5 : grid_row 1034,500 : grid_column_fixed 1034,0
  grid_one_column_width 1034,1,40
  grid_one_column_width 1034,2,60
  grid_one_column_width 1034,3,80
  grid_one_column_width 1034,4,100
  grid_one_column_width 1034,5,200
  grid_write 1034,1,1,"ID"
  grid_write 1034,1,2,"OtherID"
  grid_write 1034,1,3,"Name"
  grid_write 1034,1,4,"Number"
  grid_write 1034,1,5,"Notes"

dll_on "KGF.dll"
end

init:
  res% = dll_call0("InitializeSQLite3")
  item_add 1001,"init "+str$(res%)
  res% = dll_call1("GetSQLite3Version",handle(1011))
  item_add 1001,"  version "+str$(res%)
  return

open:
  base$ = "MonTestSQLite2.db"
  SQL% = dll_call2("OpenSQLite3",adr(base$),handle(1001))
  item_add 1001,"open "+str$(SQL%)
  
  ' récupérer le nombre de lignes de la réponse
  RowCount% = dll_call2("GetSQLite3RowCount",SQL%,adr(TestTable$))
  item_add 1001,"   "+str$(rowcount%)+" Lignes dans table "+TestTable$
  return

close:
  SQL% = dll_call1("CloseSQLite3",SQL%)
  item_add 1001,"close "+str$(SQL%)
  return
  
reset:
  res% = dll_call0("ResetSQLite3")
  clear 1001
  item_add 1001,"reset "+str$(res%)
  return
  
exit:
  SQL% = dll_call1("CloseSQLite3",SQL%)
  res% = dll_call0("ResetSQLite3")
  terminate
  
  
  
sample1:           : ' création d'une table de démo
  clear 1011
  item_add 1011,"CREATE TABLE "+TestTable$+" ([ID] INTEGER PRIMARY KEY,[OtherID] INTEGER NULL,"
  item_add 1011,"[Name] VARCHAR (255),[Number] FLOAT, [notes] BLOB);"  
  return  
  
  
  
start:
  res% = dll_call1("StartSQLite3Transaction",SQL%)
  item_add 1001,"start transaction "+str$(res%)
  return
  
exec:
  res% = dll_call2("ExecuteSQLite3Script",SQL%,handle(1011))
  item_add 1001,"Script execution "+str$(res%)
  return
  
commit:
  res% = dll_call1("CommitSQLite3Transaction",SQL%)
  item_add 1001,"commit transaction "+str$(res%)
  return
  
rollback:
  res% = dll_call1("RollbackSQLite3Transaction",SQL%)
  item_add 1001,"irollbacknvalidate transaction "+str$(res%)
  return
  
fill:
  if SQL%=0
    message "No database open"
    return
  end_if
  xNbrRecords% = 10 : ' 500
  min 1020,0 : max 1020,xNbrRecords%
  clear 1011
  for x%=1 to xNbrRecords%
    Position 1020,x%  
    ' construire la requête SQL
    sOtherID$ = str$(int(1 + Rnd(9)))
    sName$ = chr$(int(65+rnd(26)))+str$(x%)
    sNumber$ = rnd(1)
    p% = instr(sNumber$,",")
    if p%>0 then sNumber$ = left$(sNumber$,p%-1)+"."+mid$(sNumber$,p%+1,len(sNumber$))
    sNotes$ = "Possibilité de stocker des données BLOB"
    sSQL$ = "INSERT INTO "+TestTable$+"(Name,OtherID,Number,Notes) VALUES (²"+sName$+"²,"+sOtherID$+","+sNumber$+",²"+sNotes$+"²);"
    item_add 1011,sSQL$
    ' exécuter la requête SQL
    res% = dll_call2("ExecuteSQLite3Script",SQL%,adr(sSQL$))
    if res%<0
      item_add 1011,"Erreur dans requête SQL"
      return
     end_if      
  next x%
  item_add 1011,"Database filled with "+str$(xNbrRecords%)+" records"
  Position 1020,0
  return

fillgrid:
  if SQL%=0
    message "No database open"
    return
  end_if
  ' récupérer le nombre de lignes de la réponse
  RowCount% = dll_call2("GetSQLite3RowCount",SQL%,adr(TestTable$))
  if RowCount%<1
    item_add 1011,"Table "+TestTable$+"manquante ou vide"
    return
   end_if
  grid_row 1034,RowCount%+1
  
  ' charger la table dans le gridRequête SQL
  sSQL$ =         "SELECT * "
  sSQL$ = sSQL$ + "FROM "+testTable$
  sSQL$ = sSQL$ + " WHERE (("+testTable$+".Name)"
  sSQL$ = sSQL$ + " Like ²"+text$(1031)+"²)"
  if text$(1033)<>""
    sSQL$ = sSQL$ + " "+text$(1033)+";"
  else
    sSQL$ = sSQL$ + ";"
  end_if

  ' préparation de la requête: sélection des enregistrements de la table selon les critères
  res% = dll_call2("CompileSQLite3Script",SQL%,adr(sSQL$))

  ' Vider grid
  for i%=2 to RowCount%+1
    for j%=1 to grid_column(1034)
      grid_write 1034,i%,j%,""
    next j%
  next i%
  
  ' boucle d'affichage du résultat
  min 1020,0 : max 1020,5 : position 1020,0
  for i%=1 to RowCount%
    position 1020,i%
    ' Remplissage grid par lecture de chacun des colonnes de chacun des enregistrements
    res% = dll_call1("GetSQLite3NextRow",SQL%)
    if res%<0 then exit_for
    for j%=1 to 5                                      
      res% = dll_call2("GetSQLite3CellText",SQL%,j%)
      grid_write 1034,i%+1,j%,text$(1001)    : ' Ecriture dans la cellule correspondante    
    next j%
  next i%
  res% = dll_call1("FinalizeSQLite3Request",SQL%)    
  return

tables:
  if SQL%=0
    message "No database open"
    return
  end_if
  res% = dll_call1("GetSQLite3TableNames",SQL%)
  item_add 1001,str$(res%)+" tables"
  return
  
columns:
  if SQL%=0
    message "No database open"
    return
  end_if
  s$ = trim$(text$(1031))
  if s$="" then s$ = TestTable$
  res% = dll_call2("GetSQLite3ColumnNames",SQL%,adr(s$))
  item_add 1001,str$(res%)+" colonnes dans table "+s$
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JP06




Nombre de messages : 20
Age : 74
Date d'inscription : 01/01/2012

KGF_dll - nouvelles versions Empty
MessageSujet: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyDim 24 Oct 2021 - 16:02

Bonjour Klaus
J'ai téléchargé l'exemple avec Sqlite. J'ai un message d'erreur "Impossible de charger la DLL". J'utilise KGF dans d'autres applications, tout se passe bien. En substituant la nouvelle version a l'ancienne, il y a plantage...
Je suis sous Windows 11, mais en ceci n'a probablement pas d'influence.
Peux tu voir ce petit problème ?
merci pour ton travail.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyDim 24 Oct 2021 - 16:48

A que moment as-tu ce problème ? Lors du lancement du programme ? Lors de l'utilisation du menu "fichier \ Ìnitialize SQLite3" ?

Fais l'essai suivant:
- génère le fichier EXE du programme de démo
- place KGF.dll dans le même dossier
- lance le fichier EXE par un double-clic dans l'explorateur

Est-ce que c'est le même problème ? A quel moment ? Peux-tu poster une capture écran ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JP06




Nombre de messages : 20
Age : 74
Date d'inscription : 01/01/2012

KGF_dll - nouvelles versions Empty
MessageSujet: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyDim 24 Oct 2021 - 17:05

Salut Klaus,
J'ai généré l'exécutable, avec la DLL dans le même dossier, j'ai toujours le message
(136) impossible to load dll line 62.
Désolé je n'ai pas trouvé comment insérer une image..
Merci.
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyDim 24 Oct 2021 - 17:35

Bonjour à tous !

Juste un petit mot pour dire merci à Klaus et préciser que je n’ai pas rencontré de dysfonctionnement mon côté sous Windows 10.

Spoiler:

Spoiler:
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyDim 24 Oct 2021 - 17:43

Mersi à vous deux pour vos test.

L'indication décisive était le numéro de ligne de l'erreur. Elle se produit sur "DLL_ON "KGF.dll".

Conclusion: KGF.dll n'est pas dans le dossier où se trouve l'EXE.

Solution: copier KGF.dll dans le dossier où se trouve l'EXE, ou adapter le chemin dans la ligne 62 pour qu'il trouve KGF.dll.

Comme le dit la pub: "Autentica qualita ! Et voilà..." Smile Smile  Désolé, je n'ai pas pu me retenir...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyDim 24 Oct 2021 - 21:15

Bonsoir Klaus et bonsoir à tous !

J'ai voulu moi aussi tester et j'ai le même problème que notre ami JP06 ! pale

J'ai créer un dossier Base_SQL  dans lequel j'ai téléchargé la dernière version de KGF.
J'ai enregistrer le programme dans ce même dossier et j'ai même créé un EXEcutable des fois que...

Mais tout cela ne change rien... toujours le message en ligne 62 !  scratch

PS : Je suis en version Panoramic 0.9.29i9 et sous W10.
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyDim 24 Oct 2021 - 23:48

Salut Minibug !

De mon côté, toujours pas de problème. J’ai la version KGF 9.56 du 24/10/2021.
Spoiler:

J'ai également testé avec Panoramic_Editor v0.9.29i11, pas de problème.
Spoiler:

Je viens à nouveau de télécharger KGF.DLL : R.A.S. cela fonctionne toujours. Il n’y a pas eu de changement au niveau du fichier entre mon premier téléchargement et ce soir. Il est horodaté identiquement.
Spoiler:
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyLun 25 Oct 2021 - 1:29

@Minibug:
Tu dis:
Citation :
Mais tout cela ne change rien... toujours le message en ligne 62
Le problème vient certainement du fait que tu exécutes le programme directement à partir de l'éditeur. Or, l'EXE temporaire qu'il crée, il est placé dans un autre dossier que le fichier source qu'on croit exécuter. Et, logiquement, il ne trouve pas KGF.dll, ne peut pas trouver KGF.dll.

Solution simple, comme nous l'avons d'ailleurs toujours fait:
modifier le source du programme de démo à la ligne 62 pour mettre le chemin complet vers l'emplacement de KGF.dll dans cette commande d'ouverture. Ca fait quand-même quelques années que nous connaissons ce problème, non ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JP06




Nombre de messages : 20
Age : 74
Date d'inscription : 01/01/2012

KGF_dll - nouvelles versions Empty
MessageSujet: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyLun 25 Oct 2021 - 6:55

Bonjour Klaus,
L'exemple fonctionne bien. Il fallait juste télécharger la DLL sqlite version 3.6.0 et la mettre dans le dossier exemple.
J'utilise ELIP en version 2.13 MAKE_EXE version 0.6.29i9
Merci pour ton travail et ta disponibilité.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyLun 25 Oct 2021 - 7:43

Citation :
Il fallait juste télécharger la DLL sqlite version 3.6.0 et la mettre dans le dossier exemple.
Euh... ben non, en fait ! Deux remarques:
1. d'abord, la bonne version est SQLite 3.6.7. Même ci cette version est déjà ancienne,
c'est celle qui va avec l'implémentation dans KGF.dll. LA versioin 3.6.0 est encore plus ancienne,
et là, je ne sais pas si c'est entièrement compatible
2. Le présence ou non de sqlite3.dll ne joue aucun rôle jusqu'à la ligne 62.
Cette dernière charge KGF.dll, pas sqlite3.dll. Une erreur "dll non trouvée" ne se rapporte donc qu'à KGF.dll,
à rien d'autre. Puis, en ligne 66, on trouve:
Code:
res% = dll_call0("InitializeSQLite3")
C'est ici que sqlite3.dll version 3.6.7 est extraite de KGF.dll et placée dans le dossier
où se trouve l'EXE qui est en train d'exécuter. C'est cette version de sqlite3.dll qu'il faut.
Or, comme tu utilises ELIP avec Make.exe (excellent choix, d'ailleurs !), je ne sais pas où se trouve
l'EXE généré par Make.exe. C'est là qu'il faut chercher sqlite3.dll et tu y trouveras certainement
celle extraite de la DLL. La preuve: lorsque tu lances ce programme de démo, puis tu choisis
le menu "File" puis "Initialize SQLite3", tu obtiens ceci:
KGF_dll - nouvelles versions Aa174
Tu vois que la version est 3006007. Avec SQLite3 version 3.6.0, tu verrais 3006000.

Je peux te paraître pédant, mais ces questions de version sont importantes.
Sinon, la cohérence entre sqlite3.dll et mon implémentation des fonctions dans KGF.dll ne peut pas être garantie.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyLun 25 Oct 2021 - 8:02

Bonjour Klaus et Bonjour à tous !

Je te confirme de mon coté que j'ai bien testé depuis un EXEcutable et non le fichier bas.
Comme indiqué dans mon précédent message :

Citation :
J'ai enregistrer le programme dans ce même dossier et j'ai même créé un EXEcutable des fois que

Je ne suis pas un bleu ! Laughing Laughing
Pour moi il y a un autre problème. Je n'ai pas le temps de regarder ce matin mais je m'y replongerai ce soir après le travail...

Bonne journée à tous ! Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyLun 25 Oct 2021 - 8:31

J'utilise la dernière version de Panoramic, et j'exécute à partir de Panoramic_Editor. Un test montre que l'exécutable demon programme se trouve dans un dossier temporaire, et c'est là que sqlite3.dll est extrait:
KGF_dll - nouvelles versions Aa175

Par contre, lors de la commande en ligne 62
Code:
dll_on "KGF.dll"
charge bien KGF.dll présente dans le dossier où se trouve le source du programme et non l'exécutable généré.

Je suis sous Windows 10 dernière version toutes mises à jour faites, et avec la version Panoramic:
KGF_dll - nouvelles versions Aa224

Avec Panoramic_Editor, donc, il faut placer KGF.dll dans le dossier où est le code source du programme ou mettre le chemin vers KGF.dll dans la ligne 26. Le programme se chargera alors correctement. Puis, lors de l'initialisation de l'environnement SQLite3 (ligne 66), sqlite3.dll sera extraite dans le dossier où est place l'EXE généré qui est un sous-dossier temporaire de ..:_Appdata\Local\... .
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions EmptyLun 25 Oct 2021 - 10:44

Bonjour à tous !

Après avoir testé sur différents PC, je constate que sur certains ordinateurs il est effectivement impossible de charger KGF.

Que ce soit :
- Avec Panoramic_Editor ;
- Un éditeur alternatif ;
- En désactivant Windows Defender ;
- En tapant le chemin d’accès à KGF au complet (C:\Users\Marc\Desktop\Dev\Panoramic\kgf.dll) ;
- En recopiant KGF à partir d’un PC où cela fonctionne

Rien n’y fait ! Impossible de charger la DLL sur certains ordinateurs.

KGF_dll - nouvelles versions Testlo10


Je continue mes investigations.
Revenir en haut Aller en bas
Contenu sponsorisé





KGF_dll - nouvelles versions Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions Empty

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 1 sur 15Aller à la page : 1, 2, 3 ... 8 ... 15  Suivant
 Sujets similaires
-
» KGF_dll - nouvelles versions
» Nouvelles versions
» Synedit_Editor - nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: