Menú

Mostrar Mensajes

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ú

Mensajes - ^kazike^

#1
Hola a todos!
Tengo un problemilla aver si m podeis ayudar a resolverlo:
Tengo un form con un input box y lo que yo quiero es que cuando se pulsa el submit dependiendo del valor de unos radio buttons cambie el valor de ese input, pero no me esta funcionando. este es el codigo:

function getCheckEntries()
{
    var checkaut = valButton(document.fw_upd_form.AutMan);
    if (checkaut=="Manual")
    {   
        var valueChk = "Check_Manual";
        document.getElementByName("value1").value = valueChk;
    }
    else if (checkaut=="Auto")
    {
        var valueChk = "Check_Auto";
        document.getElementByName("value1").value = valueChk;
    }
}

el form

<form name="fw_upd_form" id="fw_upd_form" method="post" action="index.htm" enctype="application/x-www-form-urlencoded" onSubmit="getCheckEntries()">

<input type="hidden" name="value1" />

<tr>
    <td nowrap="nowrap" style="text-align:center;width:50px">
        <input name="AutMan" value="Auto" type="radio" <%=(FwAutoUpgrade.getValue() == 1 ? "checked=\"checked\"" : "") %>/>
    </td>
    <td nowrap="nowrap" style="vertical-align:bottom;text-align:left">Automatic</td>
</tr>
<tr>
    <td nowrap="nowrap" style="text-align:center;width:50px">
        <input name="AutMan" value="Manual" type="radio" <%=(FwAutoUpgrade.getValue() == 0 ? "checked=\"checked\"" : "") %>/>
    </td>
    <td nowrap="nowrap" style="vertical-align:bottom;text-align:left">Manual</td>
</tr>


He puesto solo las partes mas relevantes del codigo.
Alguna idea?
Gracias a todos por adelantado!!
#2
.NET (C#, VB.NET, ASP) / Re: importar dll de c++ en c#
10 Septiembre 2009, 13:37 PM
perfecto.
muchas gracias xla ayuda!!  :D
#3
.NET (C#, VB.NET, ASP) / Re: importar dll de c++ en c#
10 Septiembre 2009, 09:13 AM
Ya elimine el constructor de la declaracion y compila sin problemas, pero sigue dando el error de que no encuentra el punto de entrada.... :-\ el archivo .def tengo que hacer algo mas cn el?algun include o algo asi o solo con crearlo basta??
Saludos
#4
mmm he probado a hacer lo dices, MazarD y me tira:
Citarerror LNK2001: símbolo externo CDLL_lib sin resolver   d:\Documents and Settings\Ruben\Visual Studio 2005\Projects\DLL_CS\DLL_lib\DLL_lib.def      
en la linea 1
archivo .def

LIBRARY DLL_lib
EXPORTS
CDLL_lib
getA
getB
setA
setB
multiplica
suma

:-[
#5
.NET (C#, VB.NET, ASP) / importar dll de c++ en c#
9 Septiembre 2009, 18:03 PM
Hola a todos:
estoy haciendo una aplicacion en c# donde quiero importar una dll ya creada en c++ pero al ejecutarla me da el error:
CitarNo se puede encontrar el punto de entrada denominado 'suma' en el archivo DLL 'DLL_lib.dll'.

el codigo de la dll es el siguiente:
.h

#ifdef DLL_LIB_EXPORTS
#define DLL_LIB_API __declspec(dllexport)
#else
#define DLL_LIB_API __declspec(dllimport)
#endif

// Clase exportada de DLL_lib.dll
class DLL_LIB_API CDLL_lib
{
  private:
    int a;
int b;
  public:
CDLL_lib(void);
// TODO: agregar métodos aquí.
double multiplica();
int getA();
int getB();
void setA(int a);
void setB(int b);
};

DLL_LIB_API int suma(void);

extern DLL_LIB_API int nDLL_lib;

DLL_LIB_API int fnDLL_lib(void);


.cpp

#include "stdafx.h"
#include "DLL_lib.h"


#ifdef _MANAGED
#pragma managed(push, off)
#endif

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
    return TRUE;
}

#ifdef _MANAGED
#pragma managed(pop)
#endif

// Ejemplo de variable exportada
DLL_LIB_API int nDLL_lib=0;

// Ejemplo de función exportada.
DLL_LIB_API int fnDLL_lib(void)
{
return 42;
}

DLL_LIB_API int suma(void)
{
return 5+5;
}

// Constructor de clase exportada.
// Consultar DLL_lib.h para definir la clase
CDLL_lib::CDLL_lib()
{
this->a = 0;
this->b = 0;
}

int CDLL_lib::getA()
{
return a;
}

int CDLL_lib::getB()
{
return b;
}

void CDLL_lib::setA(int a)
{
this->a = a;
}

void CDLL_lib::setB(int b)
{
this->b = b;
}

double CDLL_lib::multiplica()
{
return (double)a*b;
}


y el archivo .cs

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Runtime.InteropServices;


namespace app_usa_dll
{
    class Program
    {
        /// <summary>
        /// Punto de entrada principal para la aplicación.
        /// </summary>
        [STAThread]
        [DllImport(/*" ..\\..\\..\\debug\\*/"DLL_lib.dll")]
        public static extern int suma();
        [DllImport(/*" ..\\..\\..\\debug\\*/"DLL_lib.dll")]
        public static extern void setA(int a);
        [DllImport(/*" ..\\..\\..\\debug\\*/"DLL_lib.dll")]
        public static extern void setB(int b);
        [DllImport(/*" ..\\..\\..\\debug\\*/"DLL_lib.dll")]
        public static extern double multiplica();
        [DllImport(/*" ..\\..\\..\\debug\\*/"DLL_lib.dll")]
        public static extern int getA();
        [DllImport(/*" ..\\..\\..\\debug\\*/"DLL_lib.dll")]
        public static extern int getB();
       
       
        static void Main()
        {
            int a = 0;
            int b = 0;
            double c = 0;
            int res = 0;
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //funciones de la dll
            try
            {
                /*a = setA(int.Parse(textBox3.Text));
                b = setB(int.Parse(textBox2.Text));
                c = multiplica();*/
                res = suma();
                setA(int.Parse("5"));
                a = getA();
                setB(int.Parse("6"));
                b = getB();
                c = multiplica();
                res = suma();
            }
            catch (DllNotFoundException exc)
            {
                Console.WriteLine(exc.ToString());
            }
            catch (EntryPointNotFoundException exc)
            {
                Console.WriteLine(exc.ToString());
            }
            Application.Run(new Form1(a, b, c, res));
        }
    }
}

Alguna idea?¿
Gracias a todos
#6
Y como puedo registrar el richtextbox y la dll???
#7
Na con eso queria decir cuando el ocx es llamado. he mirado en las referencias y si tengo el ole automatizacion.
Bueno, el problema lo solucione instalando el VB 60 en el ordenador donde lo ejecute, pero no es una solución muy elegante. me gustaria saber porque pasa eso y como puedo solucionarlo sin necesidad de instalar el VB 60
Saludos
#8
hola:
aver el ocx es basicamente un user control con un richtextbox y botones para dar un poco de formato al texto(negrita, cursiva etc), he añadido una referencia a Microsoft Scripting Runtime y na mas :S, el control lo que hace es abre un archivo .bat y lo muestra, permitiendo modificarlo y guardarlo
#9
Hola a todos:
He creado un ocx pero al ejecutarlo me lanza este error. Alguien sabe porque puede ser???
Saludosss
#10
Perfecto, gracias a los 2.   :)
Seba123neo lo que quería exactamente era hacer cosas si el usuario cierra el formulario con el boton cerrar en lugar de utilizar un boton end.