FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
linker error en c++ builder 6
estoy haciendo una aplicacion cliente servidor con paradox ,
en el programa servidor me pasa que convierto varias variables AsiString a entero , el problema es que al hacer esto y construir la aplicacion me da un error de linker error unresolved external 'StrToIntA' referenced from (ruta)/principal.obj El problema es casi seguro que es por el RemoteModule , ya que he hecho otra aplicacion solo para probar , funciona con la base de datos y todo bien , ahora bien , intento convertir una string a entero y el error nuevamente(si es una aplicacion sin el remoteModule no lo hace . Código:
// DATOSTABLASSIMPLESIMPL.H : Declaration of the datosTablasSimples #ifndef datosTablasSimplesImplH #define datosTablasSimplesImplH #define ATL_FREE_THREADED #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <MidConst.hpp> #include "PcNowServer_TLB.H" #include <DB.hpp> #include <DBTables.hpp> #include <Provider.hpp> #include <xmldom.hpp> #include <Xmlxform.hpp> #include <atl/atlvcl.h> // Forward ref. of IAppServer implementor ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// class TdatosTablasSimples : public TCRemoteDataModule { __published: // IDE-managed Components TDataSetProvider *providerClientes; TTable *tablaClientes; TTable *tablaArticulos; TTable *tablaProveedoresDuplicados; TTable *tablaStock; TTable *tablaProveedores; TTable *tablaPresupuestos; TTable *tablaFacturasProveedores; TTable *tablaAbonosProveedores; TTable *tablaClientesDuplicados; TDataSetProvider *dataClientesDuplicados; TDataSetProvider *dataArticulos; TDataSetProvider *dataProveedores; TDataSetProvider *dataProveedoresDuplicados; TDataSetProvider *dataAbonosProveedores; TDataSetProvider *dataFacturasProveedores; TDataSetProvider *dataPresupuestos; TDataSetProvider *dataStock; TQuery *consultaBusqueda; TDataSetProvider *dataConsultaBusqueda; TDataSetProvider *dataTipoArticulo; TTable *tablaTipoArticulo; TTable *tablaFabricante; TTable *tablaModelo; TDataSetProvider *dataFabricante; TDataSetProvider *dataModelo; TDataSetProvider *dataVersionSoft; TTable *tablaVersionSoft; TTable *tablaFabricanteSoftware; TDataSetProvider *dataFabricanteSoftware; TDataSetProvider *dataFacturasClientes; TTable *tablaFacturasClientes; TDataSetProvider *dataAlbaranesClientes; TDataSetProvider *dataAbonosClientes; TTable *tablaAlbaranesClientes; TTable *tablaAbonosClientes; private: // User declarations public: // User declarations __fastcall TdatosTablasSimples(TComponent* Owner); __published: }; ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// extern PACKAGE TdatosTablasSimples *datosTablasSimples; ///////////////////////////////////////////////////////////////////////////// // TdatosTablasSimplesImpl Implements IdatosTablasSimples, default interface of datosTablasSimples // ThreadingModel : Apartment // Dual Interface : TRUE // Event Support : FALSE // Default ProgID : PcNowServer.datosTablasSimples // Description : ///////////////////////////////////////////////////////////////////////////// class ATL_NO_VTABLE TdatosTablasSimplesImpl: REMOTEDATAMODULE_IMPL(TdatosTablasSimplesImpl, datosTablasSimples, TdatosTablasSimples, IdatosTablasSimples) { public: BEGIN_COM_MAP(TdatosTablasSimplesImpl) RDMOBJECT_COM_INTERFACE_ENTRIES(IdatosTablasSimples) END_COM_MAP() // Data used when registering Object // DECLARE_THREADING_MODEL(otApartment); DECLARE_PROGID(_T("PcNowServer.datosTablasSimples")); DECLARE_DESCRIPTION(_T("")); // Function invoked to (un)register object // static HRESULT WINAPI UpdateRegistry(BOOL bRegister) { TRemoteDataModuleRegistrar regObj(GetObjectCLSID(), GetProgID(), GetDescription()); // Disable these flags in order to disable use by socket or web connections. // Also set other flags to configure the behavior of your application server. // For more information, see atlmod.h and atlvcl.cpp. regObj.Singleton = false; regObj.EnableWeb = true; regObj.EnableSocket = true; return regObj.UpdateRegistry(bRegister); } // IdatosTablasSimples protected: }; #endif // datosTablasSimplesImplH Última edición por mns fecha: 27-04-2008 a las 21:04:04. |
#2
|
||||
|
||||
Este error tuyo, y tras comprobar que sólo aparece con el RemoteModule, me suena a conflicto entre funciones con el mismo nombre sin definir un namespace.
StrToIntA está definida en la libreria shlwapi.h. Se define como: Código:
LWSTDAPI_(int) StrToIntA(LPCSTR lpSrc); // Recibe un puntero char (char*) Código:
#define StrToInt StrToIntA Código:
extern PACKAGE int __fastcall StrToInt(const AnsiString S); // recibe un AnsiString. No se como son los AnsiString que tratas de convertir a enteros, ¿son ansiString o son char*?. Trata de llamar asi a la función, forzando el cast: Código:
int n = StrToInt(AnsiString(Cadena)); Código:
int n = atoi(Cadena.c_str()); Espero haberte servido de alguna ayuda. Saludos. Última edición por escafandra fecha: 29-04-2008 a las 01:09:15. |
#3
|
|||
|
|||
muchas gracias por todo
al final he usado atoi() para solucionarlo y todo bien menos mal cuando tenga un poco mas de tiempo me pondre a buscar a ver si encuentro el origen del fallo , pero por ahora funciona bien asi . mil veces agradecido |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Linker error : Problema con c++ builder | waremovil | C++ Builder | 1 | 07-04-2008 11:30:01 |
[Linker Fatal Error] Fatal: Unable to open file 'SMI2XLS.OBJ' | nera | C++ Builder | 0 | 06-09-2006 13:38:25 |
error de linker...LIB | JuanErasmo | C++ Builder | 0 | 04-09-2006 18:16:45 |
Error del linker c++ builder 6 | davomb | C++ Builder | 1 | 07-06-2006 18:23:03 |
Error linker library !!! | JuanErasmo | C++ Builder | 2 | 14-12-2005 15:59:01 |
|