Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4502 connectés 

 


Dernière réponse
Sujet : je suis trop vieux ou outporb n'existe plus en C ?
Carbon_14 J'ai fait des tests. Ma DLL 16bits, recompilée en 32 n'est pas compilable (fonctions interdites dans ce mode) ni dans un prog.
 
Il faut peut-être passer par l'écriture d'un driver virtuel (VxD ?) ou mettre les instructions assembleur dans le prog C (si BiBill et le compilateur l'autorisent).
 
Je suis finalement content de toujours écrire mes progs pour Win 3 (ou DOS). Le passage sous Win_32 semble "prendre la tête" en ce qui concerne l'instrumentation. Vive le pingouin ?

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Carbon_14 J'ai fait des tests. Ma DLL 16bits, recompilée en 32 n'est pas compilable (fonctions interdites dans ce mode) ni dans un prog.
 
Il faut peut-être passer par l'écriture d'un driver virtuel (VxD ?) ou mettre les instructions assembleur dans le prog C (si BiBill et le compilateur l'autorisent).
 
Je suis finalement content de toujours écrire mes progs pour Win 3 (ou DOS). Le passage sous Win_32 semble "prendre la tête" en ce qui concerne l'instrumentation. Vive le pingouin ?
HelloWorld il manque la partie la plus importante : celle qui donne d'avantage de privilèges à ta dll et lui autorise donc de faire ces outp ...
en plus les dll 16 bits ne sont pas utilisables depuis des programmes 32 bits ...
Carbon_14 Ci-joint le code écrit il y a dix ans (par un débutant) pour une DLL (perso) 16 BITS IN_OUT.DLL. Cela permet d'accéder aux ports à partir de VisualBasic 3 (qui ne le permet pas).
 
#include <windows.h>
#include <conio.h>
 
int FAR PASCAL LibMain(HANDLE hInstance, WORD wDataSeg, WORD cpHeapSize, LPSTR lpszCmdLine)
{
        return 1;
}
 
int FAR PASCAL WEP(int nParameter)
{
        return 1;
}
 
int FAR PASCAL _export in(int Valeur)
{
        return inp(Valeur);
}
 
void FAR PASCAL _export out(int Adresse, int Valeur)
{
 outp(Adresse, Valeur);
}
 
Déclaration sous VB3 :
Declare Function IN Lib "IN_OUT.DLL" (ByVal address%) As Integer
Declare Sub OUT Lib "IN_OUT.DLL" (ByVal address%, ByVal value%)
 
Utilisation sous VB3 :
OUT Adresse%, Valeur%  
Dummy% = IN(Adresse%)            
 
en BC, pas encore essayé
     h = LoadLibrary(NomDLL); devrait convenir
puis  
     FreeLibrary(h); quand plus besoin
 
Faudrait que je teste l'accès aux port du haut-parleur sous Win98/BC++5 ce soir, voir si cela fonctionne directement (??).
HelloWorld j'ai retrouvé une premiere adresse (mais y'a un meilleur truc que j'ai pas retrouvé)
http://www.dc.ee/Files/Programm/Windows/
 
attention, c'est pas du code de PD qu'il y a sur ce site ;)
HelloWorld meme sous Win98 ca marche pas (sauf DOS hein ...)
j'ai deja essayé
et le pire c'est que ca te met pas une erreur genre "ce programme va etre arrte blablabla" comme ca le fait petretre sous WinNT, mais ca fait strictement rien (le proc il ignore ton code)
y'a un moyen "propre" de le faire : il faut en effet etre privilégié pour effectuer cette opération et un executable ne peut pas etre privilégié
seules les dll (c'est pas top rapide) et les VxD (tout est possible) peuvent etre privilégiés
en cherchant un peu j'ai donc trouvé une dll qui faisait ca : lecture/ecriture sur les ports/n'importe ou en memoire, sous 98 ou NT :wahoo:
c'est le seul moyen ...
j'ai plus l'adresse mais cherche sur google international des trucs genre "code ring0 write in memory"
Carbon_14 Sous Borland C++ 5.02, ces fonctions existent toujours.. Pourquoi les auraient-ils supprimées ?
 
Mais pour les utiliser sous Win NT, je ne suis pas sûr qu'elles soient autorisées (accès trop bas niveau).
zop Je ne sais ce qu'il en est pour Borland, mais en Visual C++, il y a les fonctions _outp, _outpw, _outpd, _inp, _inpw, _inpd, dans le fichier <conio.h>
verdoux outporb c'est pas du C "universel" donc borland a peut être changé les fonctions.
MS utilise outp et sous linux c'est outb.
developpeur_en_panne salut...
 
il y a deux ans, j'utilisais outportb et inportb pour jouer avec mes COMi ...
je suis sous borland bcc5.5
en plus, je n'arrive pas à trouver de doc...
pfff...
 
c'est un WE qui commence bien...
 
merci à tous

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)