Cita de: dewolo en 10 Octubre 2011, 16:58 PMah y antes de llamar a terminateprocess tenes que haber llamado a createprocess
No necesariamente, podes matar procesos creados por otros procesos.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: dewolo en 10 Octubre 2011, 16:58 PMah y antes de llamar a terminateprocess tenes que haber llamado a createprocess
#include <windows.h>
BOOL APIENTRY DllMain (HANDLE, DWORD, LPVOID)
{
return TRUE;
}
class Datos
{
public:
Datos();
virtual void setVALOR(int v);
virtual int getVALOR();
virtual void Release();
private:
int VALOR;
};
Datos::Datos()
{
VALOR = 0;
}
void Datos::setVALOR(int v)
{
VALOR = v;
}
int Datos::getVALOR()
{
return VALOR;
}
void Datos::Release()
{
delete this;
}
extern "C" __declspec(dllexport) Datos *newDatosObject()
{
return new Datos;
}
#include <windows.h>
#include <cstdio>
class Datos
{
public:
virtual void setVALOR(int v) = 0;
virtual int getVALOR() = 0;
virtual void Release() = 0;
};
int main()
{
HMODULE hMod = LoadLibrary(TEXT("graphics.dll"));
if (hMod)
{
typedef Datos* (*newDatosObject_ptr)();
newDatosObject_ptr newDatosObject = (newDatosObject_ptr)GetProcAddress(hMod, "newDatosObject");
Datos *pDatos = newDatosObject();
if (pDatos)
{
int x = pDatos->getVALOR();
printf("%d\r\n", x);
pDatos->setVALOR(x + 34);
x = pDatos->getVALOR();
printf("%d\r\n", x);
pDatos->Release();
}
FreeLibrary(hMod);
}
return 0;
}
Cita de: dewolo en 9 Octubre 2011, 22:47 PMahi modifique "FuncionQueUsaUnParametroDeClaseDatos" le agruege el & para que pueda ser modificada en la DLL , osea que el EXE la llama, le pasa el objeto, y se modifica por esta funcion que se importa de la DLL
Cita de: dewolo en 9 Octubre 2011, 22:47 PMpero porqe sigue el problema del constructor? eso lo que no entiendo si en este caso el problema es que ambos codigos usan la misma clase, pero el EXE que importa esa clase no usa ningun miembro, solamente crea un objeto, se lo pasa como parametro a la funcion y esa funcion es la que lo modifica y internamiente ella si llama algunos metodos pero eso se hace en la DLL.
Cita de: dewolo en 9 Octubre 2011, 22:47 PMy sobre el IMPORT para la clase en el EXE entonces no es necesario en mi caso no?, o si porque yo hago carga dinamica de esa funcion "FuncionQueUsaUnParametroDeClaseDatos" no necesito .lib ...