Forums Últimos mensajes - Powered by IBM
 

Problemas creando clase AYUDA

29/06/2006 - 16:48 por alfonso_C# | Informe spam
Hola he visto en los foros este ejemplo para salida de texto por el
puerto LPT1 hacia la impresora, lo compile y ejecuté y trabaja muy
bien. He tratado de separar el bloque "main" de esta clase y usar la
clase desde cualquier parte de mi proyecto pero no he podido porque me
da excepcion de todo tipo. Alguien podria orientarme acerca de como
separar esto ???. Gracias Mil.

using System;
using System.IO;
using System.Runtime.InteropServices;
namespace LPTWrite
{
class LPTWrite
{
[StructLayout(LayoutKind.Sequential)]
private struct SECURITY_ATTRIBUTES
{
public int nLength;
public int lpSecurityDescriptor;
public int bInheritHandle;


}


private const int GENERIC_WRITE = 1073741824;
private const int FILE_SHARE_WRITE = 2;
private const int OPEN_EXISTING = 3;
private const int FILE_ATTRIBUTE_NORMAL = 128;
[DllImport("kernel32.dll")]
private static extern int CreateFile(string lpFileName,int
dwDesiredAccess,int dwShareMode,[MarshalAs(UnmanagedType.Struct)] ref
SECURITY_ATTRIBUTES lpSecurityAttributes,int dwCreationDisposition,int
dwFlagsAndAttributes,int hTemplateFile);
[STAThread]
static void Main(string[] args)
{
SECURITY_ATTRIBUTES sa = new SECURITY_ATTRIBUTES();
sa.bInheritHandle = 0;
sa.lpSecurityDescriptor = 0;
sa.nLength = Marshal.SizeOf(sa);
int hLPT1 = CreateFile("LPT1", GENERIC_WRITE, FILE_SHARE_WRITE, ref sa,

OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
FileStream fs = new FileStream((IntPtr)hLPT1, FileAccess.Write );
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("Hola puerto paralelo!!!");
sw.Flush();
fs.Flush();
fs.Close();


}
}
}
 

Leer las respuestas

#1 Marco Landeros
30/06/2006 - 15:38 | Informe spam
Prueba colocan Public a la clase o si la estas heredando
Public MustInherit

saludos
Lander


"alfonso_C#" wrote:

Hola he visto en los foros este ejemplo para salida de texto por el
puerto LPT1 hacia la impresora, lo compile y ejecuté y trabaja muy
bien. He tratado de separar el bloque "main" de esta clase y usar la
clase desde cualquier parte de mi proyecto pero no he podido porque me
da excepcion de todo tipo. Alguien podria orientarme acerca de como
separar esto ???. Gracias Mil.

using System;
using System.IO;
using System.Runtime.InteropServices;
namespace LPTWrite
{
class LPTWrite
{
[StructLayout(LayoutKind.Sequential)]
private struct SECURITY_ATTRIBUTES
{
public int nLength;
public int lpSecurityDescriptor;
public int bInheritHandle;


}


private const int GENERIC_WRITE = 1073741824;
private const int FILE_SHARE_WRITE = 2;
private const int OPEN_EXISTING = 3;
private const int FILE_ATTRIBUTE_NORMAL = 128;
[DllImport("kernel32.dll")]
private static extern int CreateFile(string lpFileName,int
dwDesiredAccess,int dwShareMode,[MarshalAs(UnmanagedType.Struct)] ref
SECURITY_ATTRIBUTES lpSecurityAttributes,int dwCreationDisposition,int
dwFlagsAndAttributes,int hTemplateFile);
[STAThread]
static void Main(string[] args)
{
SECURITY_ATTRIBUTES sa = new SECURITY_ATTRIBUTES();
sa.bInheritHandle = 0;
sa.lpSecurityDescriptor = 0;
sa.nLength = Marshal.SizeOf(sa);
int hLPT1 = CreateFile("LPT1", GENERIC_WRITE, FILE_SHARE_WRITE, ref sa,

OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
FileStream fs = new FileStream((IntPtr)hLPT1, FileAccess.Write );
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("Hola puerto paralelo!!!");
sw.Flush();
fs.Flush();
fs.Close();


}
}
}


Preguntas similares