<html><div style='background-color:'><P><FONT style="FONT-SIZE: 11px; FONT-FAMILY: tahoma,sans-serif">gracias por la ayuda Steven, y por ser tan paciente en explicar a detalle cada uno de los problemas </FONT></P>
<P><FONT style="FONT-SIZE: 11px; FONT-FAMILY: tahoma,sans-serif">ahora yo cambie la funcion por la que sugeristes</FONT></P>
<P><FONT style="FONT-SIZE: 11px; FONT-FAMILY: tahoma,sans-serif">LPCSTR LeerIni( LPCSTR Seccion, LPCSTR Key, LPCSTR FileIni, LPCSTR Valor, int<BR>nCant,const  char ValorDefecto="-1" )<BR>{<BR>  GetPrivateProfileString( Seccion, Key, ValorDefecto, Valor, nCant, FileIni );<BR>  return Valor;<BR>}</FONT></P>
<P><FONT style="FONT-SIZE: 11px; FONT-FAMILY: tahoma,sans-serif">pero sigue saliendo ese error, que no tengo idea de porque es :</FONT></P>
<P><FONT style="FONT-SIZE: 11px; FONT-FAMILY: tahoma,sans-serif">invalid conversion from `const char' to `const CHAR*' </FONT></P>
<P><FONT style="FONT-SIZE: 11px; FONT-FAMILY: tahoma,sans-serif"> initializing argument 3 of `DWORD GetPrivateProfileStringA(const CHAR*, const CHAR*, const CHAR*, CHAR*, DWORD, const CHAR*)' </FONT></P>
<P><FONT style="FONT-SIZE: 11px; FONT-FAMILY: tahoma,sans-serif"> invalid conversion from `const CHAR*' to `CHAR*' </FONT></P>
<P><FONT style="FONT-SIZE: 11px; FONT-FAMILY: tahoma,sans-serif"> initializing argument 4 of `DWORD GetPrivateProfileStringA(const CHAR*, const CHAR*, const CHAR*, CHAR*, DWORD, const CHAR*)' </FONT></P>
<P><FONT style="FONT-SIZE: 11px; FONT-FAMILY: tahoma,sans-serif">espero que puedas darme alguna sugerencia</P>
<BLOCKQUOTE style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #a0c6e5 2px solid; MARGIN-RIGHT: 0px">
<DIV>
<BLOCKQUOTE style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #a0c6e5 2px solid; MARGIN-RIGHT: 0px"><FONT style="FONT-SIZE: 11px; FONT-FAMILY: tahoma,sans-serif">
<HR color=#a0c6e5 SIZE=1>
From: <I>Steven Davidson <steven@conclase.net></I><BR>Reply-To: <I>Lista de correo sobre C y C++ <cconclase@listas.conclase.net></I><BR>To: <I>cconclase@listas.conclase.net</I><BR>Subject: <I>Re: [C con Clase] Leer ini ayuda</I><BR>Date: <I>Sun, 11 Feb 2007 20:23:35 -0600</I><BR>>Hola Henry,<BR>><BR>>El pasado 2007-02-12 00:59:41, henry escribió:<BR>><BR>>h> hola todos,<BR>>h> le quiero pedir una ayuda,<BR>>h> he hecho esta funcion pero no se como solucionarla, ya que cuando intento compilarla me devuelve errores.<BR>><BR>>Veamos el problema.<BR>><BR>>h> LPCSTR LeerIni(LPCSTR *Seccion ,LPCSTR *Key ,LPCSTR *FileIni ,int *ValorDefecto=-1)<BR>>h> {<BR>>h> DWORD res;<BR>>h> char Valor[255];<BR>>h> res=GetPrivateProfileString(*Seccion,*Key,ValorDefecto,Valor,sizeof(Valor),*FileIni);<BR>>h> return 
(LPCSTR)Valor;<BR>>h> }<BR>>h> uso LPCSTR , porke quiero usar el DLL en otros lenguajes de programacion,<BR>>h> aqui esta alguno de los mensajes de error<BR>>h> cannot convert `int*' to `const CHAR*' for argument `3' to `DWORD GetPrivateProfileStringA(const CHAR*, const CHAR*, const CHAR*, CHAR*, DWORD, const CHAR*)'<BR>><BR>>Esdto signfica que estás pasando un valor de tipo 'int *' como 'const char *'. Como no existe un cambio de tipo implícito en el lenguaje, el compilador se queja. Según la documentación, este tercer parámetro es de tipo 'const TCHAR *' y además no puede ser un puntero nulo. Si la función no puede encontrar la cadena a buscar, entonces copiará esta cadena de "defecto" a la cadena de salida - el 4º parámetro.<BR>><BR>>h> --------------------------------------------------------------------<BR>>h> [Warning] address of local 
variable `Valor' returned<BR>><BR>>Cometerás un error si retornas el array 'Valor' que creaste localmente en la función. Recuerda que todas las variables locales son automáticamente destruidas en cuanto termine el ámbito donde fueron creadas. Por lo tanto, al regresar de la llamada de 'LeerIni()' el array 'Valor' y su contenido serán destruidos e invalidados. Sugiero pasar la cadena del resultado como parámetro a 'LeerIni()'.<BR>><BR>>h> ---------------------------<BR>>h> invalid conversion from `char' to `const CHAR*'<BR>><BR>>No estoy seguro de la sentencia u operación referida por este mensaje en tu función.<BR>><BR>><BR>>Por último, no veo ninguna necesidad de pasar punteros a las cadenas como parámetros a tu función. Simplemente pasa las cadenas; esto es,<BR>><BR>>LPCSTR LeerIni( LPCSTR Seccion, LPCSTR Key, LPCSTR FileIni, LPCSTR Valor, int 
nCant, const char ValorDefecto="" )<BR>>{<BR>> ...<BR>> return Valor;<BR>>}<BR>><BR>>Sinceramente, creo que es mejor invocar 'GetPrivateProfileString()' directamente, en lugar de implementar tu propia función. Esto es porque al final, tu función terminará por hacer una sola llamada a la función del API. O sea, quedará algo así,<BR>><BR>>LPCSTR LeerIni( LPCSTR Seccion, LPCSTR Key, LPCSTR FileIni, LPCSTR Valor, int nCant, const char ValorDefecto="" )<BR>>{<BR>> GetPrivateProfileString( Seccion, Key, ValorDefecto, Valor, nCant, FileIni );<BR>> return Valor;<BR>>}<BR>><BR>><BR>>Espero haber aclarado la duda.<BR>><BR>>Steven<BR>>_______________________________________________<BR>>Lista de correo Cconclase Cconclase@listas.conclase.net<BR>>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net<BR>>Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ<BR></FONT></BLOCKQUOTE></DIV><BR clear=all>
<HR>
Acepta el reto MSN Premium: Envía hasta 500 megas diarios de fotos desde Hotmail. <A href="http://g.msn.com/8HMBESES/2743??PS=47575">Descárgalo y pruébalo 2 meses gratis.</A> <BR>
<P>>_______________________________________________<BR>>Lista de correo Cconclase Cconclase@listas.conclase.net<BR>>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net<BR>>Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ<BR>
<P></FONT></P></BLOCKQUOTE></div><br clear=all><hr>Encuentra una aventura, un romance o al amor de tu vida.  <a href="http://g.msn.com/8HMBESES/2737??PS=47575" target="_top">Date de alta gratis.</a> </html>