|
|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - johndoe90
Páginas: [1]
1
« en: Lunes 18 de Mayo de 2009, 15:58 »
Solucionado.
2
« en: Lunes 18 de Mayo de 2009, 15:58 »
Solucionado.
3
« en: Lunes 18 de Mayo de 2009, 15:53 »
Solucionado.
4
« en: Lunes 18 de Mayo de 2009, 15:52 »
Solucionado.
5
« en: Lunes 18 de Mayo de 2009, 15:43 »
Que es eso de la DLLmain?
6
« en: Jueves 14 de Mayo de 2009, 13:49 »
Hola que tal? Ahora no tengo un constructor en CProcess, pero si en pila, ya que lo necesito para crearla. Porque me vuelve a dar este error si esta ya inicializada? Linking... Creating library Debug/CProcess.lib and object Debug/CProcess.exp CProcess.exp : warning LNK4070: /OUT:CProcess.dll directive in .EXP differs from output filename "Debug/CProcess.exe"; ignoring directive Debug/CProcess.exe : warning LNK4086: entrypoint "_mainCRTStartup" is not __stdcall with 12 bytes of arguments; image may not run LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/CProcess.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. CProcess.exe - 2 error(s), 2 warning(s) typedef char Tpalabra [20]; class CProcess { private: Tpalabra imageName; float cpuUsage; int memUsage; public: CProcess(); void pon_imageName(char name[20]); char* dame_imageName(); void pon_cpuUsage(float cpu); float dame_cpuUsage(); void pon_memUsage(int mem); int dame_memUsage(); float valor_inicial_cpu(); int valor_inical_mem(); };
#include "CProcess.h" #define MAXPILA 5 class CPila { private: CProcess Vector[MAXPILA]; int CimPila; public: CPila(void); int PilaVacia(void); int PilaLlena(void); void PushPila(CProcess &c); CProcess PopPila(void); };
#include "CProcess.h" #include <string.h> void CProcess::pon_imageName(Tpalabra name) { strcpy(imageName,name); } Tpalabra* CProcess::dame_imageName() { return (&imageName); } void CProcess::pon_cpuUsage(float cpu) { cpuUsage=cpu; } float CProcess::dame_cpuUsage() { return (cpuUsage); } void CProcess::pon_memUsage(int mem) { memUsage=mem; } int CProcess::dame_memUsage() { return (memUsage); }
#include "pila.h" CPila::CPila(void) { CimPila=-1; } int CPila::PilaVacia(void) { return(CimPila==-1); } int CPila::PilaLlena(void) { return(CimPila==MAXPILA-1); } void CPila::PushPila(CProcess &p) { Vector[++CimPila]=p; } CProcess CPila::PopPila(void) { return(Vector[CimPila--]); }
#include "Windows.h" #include "pila.h" CProcess my_Process; CPila mi_pila; int FAR PASCAL DLLanade_proceso(Tpalabra name, float cpu, int mem) { CProcess c; if (mi_pila.PilaLlena()) return -1; else { c.pon_imageName(name); c.pon_cpuUsage(cpu); c.pon_memUsage(mem); mi_pila.PushPila(c); return 0; } } int FAR PASCAL DLLquita_proceso(Tpalabra name, float* cpu, int* mem) { if (mi_pila.PilaVacia()) return -1; else { CProcess c = mi_pila.PopPila(); strcpy(name, *c.dame_imageName()); *cpu = c.dame_cpuUsage(); *mem = c.dame_memUsage(); return 0; } }
LIBRARY CProcess.dll DESCRIPTION 'DLL cola de procesos' HEAPSIZE 1024 EXPORTS DLLanade_proceso @1 DLLquita_proceso @2
7
« en: Jueves 14 de Mayo de 2009, 13:18 »
Hola el error me da en la linea marcada con negrita: Alguien me pude decir como solucionarlo? Gracias.
Private Sub cambiar_Click() Dim nueva, ide As String Dim er As Long nueva = nuevo.Text nuevo.Text = " " er = DLLmodificar_id(nueva_id) If er = 0 Then pintar_matriz End If
End Sub
Modulo:
Public Declare Function DLLmodificar_id _ Lib "tren.dll" _ (ByVal nueva_id As String, ByVal id As String) _ As Long
8
« en: Jueves 14 de Mayo de 2009, 12:48 »
Gracias, solucioné el problema.
Pero la etiqueta CODE donde deberia ir? en C++ o en VB? a que te refieres con cada bloque?
9
« en: Jueves 14 de Mayo de 2009, 12:46 »
Entonces si quisiera que me retornase un valor deberia escrbirse asi?
float FAR PASCAL DLLdame_cpuUsage(float cpuUsage) { return my_Process.dame_cpuUsage(cpuUsage); }
Yo lo que quiero es que me retorne el valor previamente introducido en esa variable float.
10
« en: Lunes 11 de Mayo de 2009, 16:29 »
Hola, estoy haciendo un programilla de VB 6.0 a partir de una dll en C++, y me da este error en la siguiente linea:
Alguien sabe el motivo o como solucionarlo?
Gracias.
Adjunto codigo:
Option Explicit
Private Sub Command1_Click() Dim name As String Dim cpu As Single Dim mem As Long
name = " " name_in.Text = name cpu_in.Text = cpu mem_in.Text = mem
DLLpon_imageName (name) DLLpon_cpuUsage (cpu) DLLpon_memUsage (mem) MsgBox "Datos introducidos correctamente"
End Sub
Private Sub Command2_Click() Dim palabra As String Dim cpuUsage As Single Dim memUsage As Long palabra = " "
DLLdame_imageName (palabra) DLLdame_cpuUsage (cpuUsage) DLLdame_memUsage (memUsage)
name_out.Text = palabra cpu_out.Text = cpuUsage mem_out.Text = memUsage
End Sub
Codigo C++
typedef char Tpalabra [20];
class CProcess { private: Tpalabra imageName; float cpuUsage; int memUsage;
public: void pon_imageName(Tpalabra name); Tpalabra* dame_imageName(); void pon_cpuUsage(float cpu); float dame_cpuUsage(); void pon_memUsage(int mem); int dame_memUsage(); float valor_inicial_cpu(); int valor_inical_mem(); };
#include "CProcess.h" #include <string.h>
float CProcess::valor_inicial_cpu() { return cpuUsage; }
int CProcess::valor_inical_mem() { return memUsage; }
void CProcess::pon_imageName(Tpalabra name) { strcpy(imageName,name); }
Tpalabra* CProcess::dame_imageName() { return (&imageName); }
void CProcess::pon_cpuUsage(float cpu) { cpuUsage=cpu; }
float CProcess::dame_cpuUsage() { return (cpuUsage); }
void CProcess::pon_memUsage(int mem) { memUsage=mem; }
int CProcess::dame_memUsage() { return (memUsage); }
LIBRARY CProcess.dll DESCRIPTION 'Dll CProcess' HEAPSIZE 4024
EXPORTS DLLpon_imageName @1 DLLdame_imageName @2 DLLpon_cpuUsage @3 DLLdame_cpuUsage @4 DLLpon_memUsage @5 DLLdame_memUsage @6
#include "Windows.h" #include "CProcess.h"
CProcess my_Process;
void FAR PASCAL DLLpon_imageName(Tpalabra name) { my_Process.pon_imageName(name); }
void FAR PASCAL DLLdame_imageName(Tpalabra name) { strcpy(name,*my_Process.dame_imageName()); }
void FAR PASCAL DLLpon_cpuUsage(float cpu) { my_Process.pon_cpuUsage(cpu); }
float FAR PASCAL DLLdame_cpuUsage() { return my_Process.dame_cpuUsage(); }
void FAR PASCAL DLLpon_memUsage(int mem) { my_Process.pon_memUsage(mem); }
int FAR PASCAL DLLdame_memUsage() { return my_Process.dame_memUsage(); }
11
« en: Lunes 11 de Mayo de 2009, 16:26 »
Lo he arreglado un poco más, pero me sigue dando el mismo error, te subrayo en negrita donde me lo da
La etiqueta [CODE] donde va exactamente?
Y bueno, ya que esto es una mezcla de C++ y VB, no se si ponerlo en este foro de C++ o en el de VB, ya que el error es en VB lo postearé en el otro foro.
typedef char Tpalabra [20];
class CProcess { private: Tpalabra imageName; float cpuUsage; int memUsage;
public: void pon_imageName(Tpalabra name); Tpalabra* dame_imageName(); void pon_cpuUsage(float cpu); float dame_cpuUsage(); void pon_memUsage(int mem); int dame_memUsage(); float valor_inicial_cpu(); int valor_inical_mem(); };
#include "CProcess.h" #include <string.h>
float CProcess::valor_inicial_cpu() { return cpuUsage; }
int CProcess::valor_inical_mem() { return memUsage; }
void CProcess::pon_imageName(Tpalabra name) { strcpy(imageName,name); }
Tpalabra* CProcess::dame_imageName() { return (&imageName); }
void CProcess::pon_cpuUsage(float cpu) { cpuUsage=cpu; }
float CProcess::dame_cpuUsage() { return (cpuUsage); }
void CProcess::pon_memUsage(int mem) { memUsage=mem; }
int CProcess::dame_memUsage() { return (memUsage); }
#include "Windows.h" #include "CProcess.h"
CProcess my_Process;
void FAR PASCAL DLLpon_imageName(Tpalabra name) { my_Process.pon_imageName(name); }
void FAR PASCAL DLLdame_imageName(Tpalabra name) { strcpy(name,*my_Process.dame_imageName()); }
void FAR PASCAL DLLpon_cpuUsage(float cpu) { my_Process.pon_cpuUsage(cpu); }
float FAR PASCAL DLLdame_cpuUsage() { return my_Process.dame_cpuUsage(); }
void FAR PASCAL DLLpon_memUsage(int mem) { my_Process.pon_memUsage(mem); }
int FAR PASCAL DLLdame_memUsage() { return my_Process.dame_memUsage(); }
LIBRARY CProcess.dll DESCRIPTION 'Dll CProcess' HEAPSIZE 4024
EXPORTS DLLpon_imageName @1 DLLdame_imageName @2 DLLpon_cpuUsage @3 DLLdame_cpuUsage @4 DLLpon_memUsage @5 DLLdame_memUsage @6
Option Explicit
Private Sub Command1_Click() Dim name As String Dim cpu As Single Dim mem As Long
name = " " name_in.Text = name cpu_in.Text = cpu mem_in.Text = mem
DLLpon_imageName (name) DLLpon_cpuUsage (cpu) DLLpon_memUsage (mem) MsgBox "Datos introducidos correctamente"
End Sub
Private Sub Command2_Click() Dim palabra As String Dim cpuUsage As Single Dim memUsage As Long palabra = " "
DLLdame_imageName (palabra) DLLdame_cpuUsage (cpuUsage) DLLdame_memUsage (memUsage)
name_out.Text = palabra cpu_out.Text = cpuUsage mem_out.Text = memUsage
End Sub
12
« en: Lunes 4 de Mayo de 2009, 17:16 »
Solucionado, en vez de ser Sub es Function, y devuelve un As Long.
13
« en: Lunes 4 de Mayo de 2009, 16:52 »
Public Declare Sub DLLdame_id _ Lib "tren.dll" _ (ByVal id As String, ByVal k As Long)
14
« en: Lunes 4 de Mayo de 2009, 16:23 »
Gracias, pero me sigue dando el mismo error.
15
« en: Lunes 4 de Mayo de 2009, 13:12 »
De acuerdo, esta funcion va a llamar en la dll la función escrita en C++ siguiente:
int FAR PASCAL DLLdame_id(char id [20],int i) { t=*mis_trenes.dame_tren(i); strcpy (id,*t.dame_id()); return 0; }
Definida en DLLtrenes.cpp en VC++ 6.0
Esta dame_id esta definida en tren.cpp
Tpalabra* CTren::dame_id(void) { return (&id); }
De la clase CTren en public:
Tpalabra* dame_id(void);
16
« en: Lunes 4 de Mayo de 2009, 12:38 »
Tienes un mail para que pueda enviarte el proyecto todo comprimido y mirarlo todo con mas calma?
17
« en: Domingo 3 de Mayo de 2009, 23:23 »
Hola que tal? A que es debido este error? Si, ya se que esperaba una funcion o una variable, pero en esencia, porque suele pasar este tipo de error? El bucle esta bien escrito? El error me lo marca con amarillo en Private Sub Form_Load() y en azul me subraya DLLdame_id. Gracias.
Option Explicit
Private Sub Form_Load() Dim n As Long Dim k As Integer Dim id As String Dim t As String Dim er As Long Dim x As Long x = 0 er = DLLcargar If er = -1 Then MsgBox "Error al cargar el fichero" ElseIf er = -2 Then MsgBox "Error al leer el id" ElseIf er = -3 Then MsgBox "error al leer el porcentaje de ocupacion" ElseIf er = -4 Then MsgBox "error al leer las cooredenadas" ElseIf er = -5 Then MsgBox "Las coordenadas exceden la capacidad de la matriz" ElseIf er = -6 Then MsgBox "Error al leer los datos personales" Else MsgBox "Fichero cargado correctamente"
id = " " n = DLLdame_num_trenes For k = 0 To n t = " " x = DLLdame_id(id, k) If x = 0 Then t = id End If List1.AddItem t Next k End Sub
18
« en: Lunes 27 de Abril de 2009, 13:23 »
Hola, haciendo un codigo en C++ en objetos para hacer una pila sencilla, al compilar me salieron estos errores, si alguien sabe a que se deben o como solucionarlos que me lo diga por favor. Gracias. Linking... pila.obj : error LNK2001: unresolved external symbol "public: __thiscall CProcess::CProcess(void)" (??0CProcess@@QAE@XZ) principal.obj : error LNK2001: unresolved external symbol "public: __thiscall CProcess::CProcess(void)" (??0CProcess@@QAE@XZ) Debug/CProcess.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. CProcess.exe - 3 error(s), 0 warning(s) CProcess.h typedef char Tpalabra [20]; class CProcess { private: Tpalabra imageName; float cpuUsage; int memUsage; public: CProcess(); void pon_imageName(char name[20]); char* dame_imageName(); void pon_cpuUsage(float cpu); float dame_cpuUsage(); void pon_memUsage(int mem); int dame_memUsage(); float valor_inicial_cpu(); int valor_inical_mem(); };
pila.h #include "CProcess.h" #define MAXPILA 5 class CPila { private: CProcess Vector[MAXPILA]; int CimPila; public: CPila(void); int PilaVacia(void); int PilaLlena(void); void PushPila(CProcess &t); CProcess* PopPila(void); };
CProcess.cpp #include "CProcess.h" #include <string.h> void CProcess::pon_imageName(char name[20]) { strcpy(imageName,name); } char* CProcess::dame_imageName() { return (imageName); } void CProcess::pon_cpuUsage(float cpu) { cpuUsage=cpu; } float CProcess::dame_cpuUsage() { return (cpuUsage); } void CProcess::pon_memUsage(int mem) { memUsage=mem; } int CProcess::dame_memUsage() { return (memUsage); } pila.cpp #include "pila.h" CPila::CPila(void) { CimPila=-1; } int CPila::PilaVacia(void) { return(CimPila==-1); } int CPila::PilaLlena(void) { return(CimPila==MAXPILA-1); } void CPila::PushPila(CProcess &p) { Vector[++CimPila]=p; } CProcess* CPila::PopPila(void) { return(&Vector[CimPila--]); }
#include "CProcess.h" #include <string.h> #include <stdio.h> void main() { CProcess my_Process; Tpalabra name; float cpu; int mem; printf("Escribe los datos del proceso.n"); printf("Nombre de la imagen.n"); scanf("%s",name); my_Process.pon_imageName(name); printf("Uso de la cpu, ha de ser un valor comprendido entre 0 y 100, es un tanto por ciento.n"); scanf("%f",&cpu); my_Process.pon_cpuUsage(cpu); printf("Uso de la memoria.n"); scanf("%d",&mem); my_Process.pon_memUsage(mem); printf("El proceso %s tiene un uso de: n", my_Process.dame_imageName()); printf("%f de cpu.n", my_Process.dame_cpuUsage()); printf(" y %d de memoria.n",my_Process.dame_memUsage()); }
PD: Como se puede poner un codigo tan largo un poco mas comprimido que no ocupe todo el post?
19
« en: Lunes 27 de Abril de 2009, 13:15 »
Hola, estoy intentando hacer un programa en VB a partir de una dll hecha con C++ en objetos. El programa consiste en introducir el nombre, uso de cpu y memoria de un proceso, y luego mostrarlo, todo va bien hasta que se le da a mostrar, entonces me sale el error 49: "La convencion de llamadas a DLL es incorrecta". Alguien sabria decirme donde esta el fallo?
Gracias.
Adjunto código.
CProcess.h
typedef char Tpalabra [20];
class CProcess { private: Tpalabra imageName; float cpuUsage; int memUsage;
public: CProcess(); void pon_imageName(Tpalabra name); Tpalabra* dame_imageName(); void pon_cpuUsage(float cpu); float dame_cpuUsage(); void pon_memUsage(int mem); int dame_memUsage(); float valor_inicial_cpu(); int valor_inical_mem(); };
CProcess.cpp
#include "CProcess.h" #include <string.h>
Tpalabra newProc;
CProcess::CProcess() { strcpy(imageName,newProc); cpuUsage=0.0; memUsage=0; }
float CProcess::valor_inicial_cpu() { return cpuUsage; }
int CProcess::valor_inical_mem() { return memUsage; }
void CProcess::pon_imageName(Tpalabra name) { strcpy(imageName,name); }
Tpalabra* CProcess::dame_imageName() { return (&imageName); }
void CProcess::pon_cpuUsage(float cpu) { cpuUsage=cpu; }
float CProcess::dame_cpuUsage() { return (cpuUsage); }
void CProcess::pon_memUsage(int mem) { memUsage=mem; }
int CProcess::dame_memUsage() { return (memUsage); }
DLLCProcess.cpp
#include "Windows.h" #include "CProcess.h"
CProcess my_Process;
void FAR PASCAL DLLpon_imageName(Tpalabra name) { my_Process.pon_imageName(name); }
void FAR PASCAL DLLdame_imageName(Tpalabra name) { strcpy(name,*my_Process.dame_imageName()); }
void FAR PASCAL DLLpon_cpuUsage(float cpu) { my_Process.pon_cpuUsage(cpu); }
float FAR PASCAL DLLdame_cpuUsage() { return my_Process.dame_cpuUsage(); }
void FAR PASCAL DLLpon_memUsage(int mem) { my_Process.pon_memUsage(mem); }
int FAR PASCAL DLLdame_memUsage() { return my_Process.dame_memUsage(); }
CProcess.def
LIBRARY CProcess.dll DESCRIPTION 'Dll CProcess' HEAPSIZE 4024
EXPORTS DLLpon_imageName @1 DLLdame_imageName @2 DLLpon_cpuUsage @3 DLLdame_cpuUsage @4 DLLpon_memUsage @5 DLLdame_memUsage @6
VB
Form 1
Option Explicit
Private Sub Command1_Click() Dim name As String Dim cpu As Single Dim mem As Long
name = " " name_in.Text = name cpu_in.Text = cpu mem_in.Text = mem
DLLpon_imageName (name) DLLpon_cpuUsage (cpu) DLLpon_memUsage (mem) MsgBox "Datos introducidos correctamente"
End Sub
Private Sub Command2_Click() Dim palabra As String Dim cpuUsage As Single Dim memUsage As Long palabra = " "
DLLdame_imageName palabra DLLdame_cpuUsage cpuUsage DLLdame_memUsage memUsage
name_out.Text = palabra cpu_out.Text = cpuUsage mem_out.Text = memUsage
End Sub
Module1
Option Explicit
Public Declare Function DLLpon_imageName _ Lib "CProcess.dll" _ (ByVal name As String) _ As Long
Public Declare Function DLLdame_imageName _ Lib "CProcess.dll" _ (ByVal imageName As String) _ As Long
Public Declare Function DLLpon_cpuUsage _ Lib "CProcess.dll" _ (ByVal cpu As Single) _ As Long
Public Declare Function DLLdame_cpuUsage _ Lib "CProcess.dll" _ (ByVal cpuUsage As Single) _ As Long
Public Declare Function DLLpon_memUsage _ Lib "CProcess.dll" _ (ByVal mem As Long) _ As Long
Public Declare Function DLLdame_memUsage _ Lib "CProcess.dll" _ (ByVal memUsage As Long) _ As Long
PD: Hay alguna manera de no meter un codigo tan largo en un post? Comprimirlo o algo asi?
20
« en: Jueves 5 de Marzo de 2009, 23:22 »
Hola, estoy estudiando este interesante mundo de las pilas y colas.He hecho el siguiente programa que lee una secuencia de numeros y los devuelve al revés. Adjunto el codigo en C para que me puedan decir si esta bien, en especial las funciones, gracias.
#include <stdio.h> #define MAXPILA 5
typedef struct { int pilavector[MAXPILA]; int cimpila; }Tpila;
void crear_pila(Tpila *pila) { pila->cimpila=-1; }
int pila_vacia(Tpila pila) { if (pila.cimpila=-1) { return 1; } else { return 0; } }
int pila_llena(Tpila pila) { return (pila.cimpila==MAXPILA-1); }
void pushpila(Tpila *pila, int n) { pila->pilavector [++pila->cimpila] = n; }
int poppila(Tpila *pila) { return pila->pilavector[pila->cimpila]; pila->pilavector[--pila->cimpila]; }
void main () { Tpila mi_pila; int n;
crear_pila (&mi_pila); printf ("Escribe el primer número de la secuencian"); scanf ("%d",&n); while (n!=0) { if (!pila_llena (mi_pila)) pushpila (&mi_pila,n); else printf ("La pila ya está llenan"); printf ("Escribe el siguiente número de la secuencian"); scanf ("%d",&n); } printf("Ahora los números al revésn"); while (!pila_vacia (mi_pila)) { poppila(&mi_pila); printf ("%d",&n); } }
21
« en: Miércoles 4 de Marzo de 2009, 12:38 »
Hola, estoy estudiando pilas y colas en C y me preguntaba si se puede almacenar matrices en una pila (1 matriz por una posicion de la pila). Alguien sabe como lo podria hacer? Gracias.
22
« en: Sábado 10 de Enero de 2009, 22:20 »
fopen () ? y dentro de los parentesis que va?
23
« en: Lunes 5 de Enero de 2009, 23:21 »
Buenos dias.
Estoy diseñando un programa que maneja a comerciales de una agencia de pisos, cada comercial tiene unos pisos asignados. He tenido problemas con dos cosillas:
1. Como puedo hacer para que el programa me muestre la hora y fecha actual? 2. Hacer que lea, cargue y guarde de un archivo un vector de caracteres (para el nombre del comerciante y del piso).
Gracias.
Páginas: [1]
|
|
|