Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como agregra dll a proyecto delphi (https://www.clubdelphi.com/foros/showthread.php?t=41973)

manolop 30-03-2007 11:57:10

Como agregra dll a proyecto delphi
 
Hola, necesito agregar a mi proyecto la libreria faxcom.dll para poder ejecutar el siguiente codigo que encontro en los foros para enviar fax. Alguien me podria decir como puedo agregar la dll para usar sus funciones. Gracias.

Código Delphi [-]
function SendFax(filename : String; number : String) : Integer;
var Srv : FAXCOMLib.FaxServer;
var Doc : FAXCOMLib.FaxDoc;
begin
  Srv := FaxServerClass.Create();
  Srv.Connect(nil);
  Doc := FAXCOMLib.FaxDoc(Srv.CreateDocument(filename));
  Doc.FaxNumber := number;
  sendFax := Doc.Send();
  srv.Disconnect;
end;

DarKraZY 30-03-2007 12:13:35

Deberás declarar de nuevo la cabecera de la función indicando el nombre de la dll

Código Delphi [-]
function SendFax(filename : String; number : String) : Integer; external 'libreria.dll';

Lo más cómodo es crear una unidad donde declarar todas estas funciones de la dll. Y a continuación añades al uses la unidad.

Saludos!


PD: Se me olvidó el ;

manolop 30-03-2007 12:29:42

Lo he puesto asi, pero me dice que no encuentra FAXCOMLib
Código Delphi [-]
function SendFax(filename : String; number : String) : Integer;external 'faxcom.dll';
var Srv : FAXCOMLib.FaxServer;
var Doc : FAXCOMLib.FaxDoc;
begin
  Srv := FaxServerClass.Create();
  Srv.Connect(nil);
  Doc := FAXCOMLib.FaxDoc(Srv.CreateDocument(filename));
  Doc.FaxNumber := number;
  sendFax := Doc.Send();
  srv.Disconnect;
end;

En cuanto a lo de crear una unidad, debería averiguar las funciones que tien e la dll e incluirlas en la nueva unit?. No tendras algun ejemplo porfavor, ya estoy varias semanas con esto del fax y me tiene fuera de mi. muchas gracias de antemano y por tu anterior respuesta.

Neftali [Germán.Estévez] 30-03-2007 12:41:00

Acabo de subir al FTP público una utilidad (de Wise Guy) para saber las funciones que exporta una DDL's. Se llama ADLLExport.

manolop 30-03-2007 13:26:21

Muchas gracias Neftali, voy a probarlo

manolop 30-03-2007 13:33:30

Me muestra los nombres de las 4 funciones que tiene la dll pero no se como crear la unit de modo que pueda acceder a la dll.....me voy a comprar una bicicleta y hare de fax yo mismo...compro un ejemplo que funcione para enviar fax con pdf adjuntos por 50 euros. en serio, lo necesito

Neftali [Germán.Estévez] 30-03-2007 13:36:07

¿Puedes poner cuales son esas funciones?
¿No será un servidor COM? ¿Tiene Register y UnRegister?

manolop 30-03-2007 13:47:02

DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer

No sabes lo que te agradezco que te tomes la molestia conmigo, gracias

la dll es la siguiente:
http://ole.mine.nu/poli/ELIMINARWEB/faxcom.dll

dec 30-03-2007 14:22:12

Hola,

En Microsoft se haya información "About the Fax Service Client API". También se encuentra en Microsoft el artículo "Using the Fax Client COM Implementation". Échales un vistazo a ver.

De todos modos prueba esto otro: "Project -> Import Type Library" y elige "FaxControl 1.0 Type Library". Con esto puedes obtener una unidad que implementa el tipo "TFaxControl", empero, no sé hasta qué punto se hace uso de lla librería que mencionas, puesto que me parece que dicha librería es anterior a sucesivas versiones de la "Fax Service Client API" de Windows (de hecho yo no encuentro la librería "faxcom.dll" en mi sistema -Windows XP).

Lo peor de todo es que si buscas en Google, por ejemplo, información sobre el tipo "TFaxControl" no se encuentra ni un solo resultado... ni uno solo siquiera...

manolop 30-03-2007 14:26:12

de esa falta de información viene mi desesperación. La libreria la he cogido de un W2000 server, pq en efecto en xp no esta pero en un hilo de este foro si la han puesto en marcha. Voy a ver lo que me dices y ya te cuento, aunque ya me estoy desilusionando totalmente con P. fax, gracias.

dec 30-03-2007 14:29:08

Hola,

Yo sólo puedo decir que la función que has copiado más arriba aparece en varios Hilos de estos Foros, y no sé su origen exacto. Me temo que el tratar con Faxes es más complicado que hacer uso de la función susomentada. Hay todo un API para ese Servicio, a lo que se ve. Acaso convendría echar un vistazo a la documentación disponible (en Microsoft), puesto que la función que comento no parece trabajar como se espera.

Y tomarlo con calma, por supuesto. :) Por ejemplo, si pretendes que tu aplicación funcione también en Windows XP, acaso no bastara con copiar la librería de marras a Windows XP, puesto que puede tener una serie de dependencias que no estén satisfechas en este sistema. Mi intuición (probablemente equivocada porque no se basa sino en meras hipótesis irracionales) es que la librería "faxcom.dll" está anticuada en relación con la "API" que para tratar con Faxes se ofrece en Windows desde hace el tiempo que sea.

Puede que te cueste menos trabajo tratar de encontrar alternativas como la que propone el compañero Casimiro más arriba. O bien buscar en Google, por ejemplo, por "Send a Fax with Delphi", puesto que aparecen no pocos resultados que acaso te echen una mano sin pasar por la librería que te está causando problemas y que además parece completamente "indocumentada"...

Neftali [Germán.Estévez] 30-03-2007 18:04:16

Si es lo que yo me pienso, lo primeros que debes hacer es registrar el Servidor COM. Desde la línea de comandos:

regsvr32 C:\WINNT\system32\faxcom.dll

Una vez registrada correctamente, importa la DLL desde el menu de Project (Import Type Library); La añades (Add) y luego pulsas Install.
En el directorio Import de Delphi te debe crear los ficheros: FAXCOMLib_TLB.dcr y FAXCOMLib_TLB.pas
Al instalarlo correctamente se crearán en la pestaña ActiveX de tu Delphi una serie de componentes (al menos am mi se me han creado estos):
  • TFaxTiff
  • TFaxServer
  • TFaxPort
  • TFaxPorts
  • TFaxRoutingMethod
  • TFaxRoutingMethods
  • TFaxStatus
  • TFaxDoc
  • TFaxJobs
  • TFaxJob
A partir de ahí, es cuestion de investigar...


La franja horaria es GMT +2. Ahora son las 05:14:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi