Carga de funcion de una dll c++

Iniciado por alerico90, 14 Agosto 2015, 22:37 PM

0 Miembros y 1 Visitante están viendo este tema.

alerico90

Hola! tengo un problema al llamar una funcion de una dll que se supone envia  por paquetes udp lo que se encuentra en la estructura de los parametros pero en vez de eso envia el nombre de la funcion como tal aqui el codigo, la funcion es PBusTransferPLUCluster

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
HMODULE  dllhandle;
#include "Unit1.h"
#include <windows.h>
#include <iostream.h>
#include <conio.h>
//#include "PBusDrv.dll"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

typedef struct
{
    string Name;
    int LFCode;
    string Code;
    int BarCode;
    int UnitPrice;
    int WeightUnit;  //4 Kg, 9 PCS
    int Deptment;
    double Tare;
    int ShlefTime;
    int FixUnit;
    double FixWeight;
    int Tolerance;
    int Message1;
    byte Reserved;
    string Reserved1;
    byte Message2;
    byte Reserved2;
    int MultiLabel;
    int Rebate;
    int Account;
   }TPLU;


typedef struct
{
   string Name;
   int LFCode;
   string Code;
   int BarCode;
   int UnitPrice;
   int WeightUnit;  //4 Kg, 9 PCS
   int Deptment;
   double Tare;
   int ShlefTime;
   int FixUnit;
   double FixWeight;
   int Tolerance;
   int Message1;
   byte Reserved;
   string Reserved1;
   byte Message2;
   byte Reserved2;
   int MultiLabel;
   int Rebate;
   int Account;
   int PluKey;
   string ProdDate;
   bool IsLock;
   int Traceid;
   int IceRate;
   int TotalPrice;
   char JudgeCode;
   }TPLU1;


TPLU  ClusterUpload;
TPLU* ClusterDownload;
TPLU1 ClusterUpload1;
TPLU1 ClusterDownload1;
TPLU PPLUCluster[4];
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   int d,d2;


   PPLUCluster[0].Name = "Melon";
   PPLUCluster[0].UnitPrice = 1832;
   PPLUCluster[0].LFCode = 1001;
   PPLUCluster[0].Code = "1001";
   PPLUCluster[0].WeightUnit = 4;
   PPLUCluster[0].Deptment = 21;
   PPLUCluster[0].BarCode = 7;

   PPLUCluster[1].Name = "Manzanas";
   PPLUCluster[1].UnitPrice = 1200;
   PPLUCluster[1].LFCode = 1002;
   PPLUCluster[1].Code = "1002";
   PPLUCluster[1].WeightUnit = 4;
   PPLUCluster[1].Deptment = 21;
   PPLUCluster[1].BarCode = 7;

   PPLUCluster[2].Name = "Uvas";
   PPLUCluster[2].UnitPrice = 1832;
   PPLUCluster[2].LFCode = 1003;
   PPLUCluster[2].Code = "1003";
   PPLUCluster[2].WeightUnit = 4;
   PPLUCluster[2].Deptment = 21;
   PPLUCluster[2].BarCode = 7;

   PPLUCluster[3].Name = "Melon";
   PPLUCluster[3].UnitPrice = 1200;
   PPLUCluster[3].LFCode = 1004;
   PPLUCluster[3].Code = "1004";
   PPLUCluster[3].WeightUnit = 4;
   PPLUCluster[3].Deptment = 21;
   PPLUCluster[3].BarCode = 7;

   dllhandle = LoadLibraryW(L"PBusDrv.dll");

   if(dllhandle)
   {
      typedef int (__stdcall *PBUSCONNECTEX)(char *aux1, char *aux2, char *ip);
      PBUSCONNECTEX PBusConnectEx;
      PBusConnectEx =  (PBUSCONNECTEX)GetProcAddress(dllhandle,  "PBusConnectEx");
      d=PBusConnectEx("","","192.168.30.252");

      if(d>=0)
      {
         CheckBox1->State=1;
      }

      typedef int (__stdcall *PBUSTRANSFERPLUCLUSTER)(TPLU PPLUCluster[]);
      PBUSTRANSFERPLUCLUSTER PBusTransferPLUCluster;
      PBusTransferPLUCluster =  (PBUSTRANSFERPLUCLUSTER)GetProcAddress(dllhandle,  "PBusTransferPLUCluster");
      d2=PBusTransferPLUCluster(PPLUCluster);


   }

ivancea96

Recuerda poner las etiquetas de código, GeSHi.

Sin más información de la función, es difícil saber qué ocurre.