Announcement

Collapse
No announcement yet.

Variablen übergabe in eine DLL

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Variablen übergabe in eine DLL

    Hab in sofern ein Problem hab ne DLL in ein TLB gewandelt die Pas eingebunden aber mit folgendem Aufruf ein Problem.

    [Fehler] GPmain.pas(576): Variable erforderlich

    hab es schon in div. varianten versucht aber leider nicht geschafft es zum laufen zu bringen.


    Wer kann mit helfen.

    Danke.


    Newgencalc := CoCalculator.create;

    newgencalc.product := 1 ;
    NewGenCalc.PrivateOption := true ;
    NewGenCalc.NumberAge := '01-01-1980' ;
    NewGenCalc.DateStart := '01-07-2004' ;
    NewGenCalc.sexind := 0 ;
    NewGenCalc.NSmok := True ;
    NewGenCalc.PKnown := 0 ;
    NewGenCalc.SPrem := '1000' ;
    NewGenCalc.RPrem := '100' ;
    NewGenCalc.PartSurrs := 6 ;
    NewGenCalc.Freq := 12 ;
    NewGenCalc.RetAge := 65 ;
    NewGenCalc.AgeOrTerm := 0 ;
    NewGenCalc.Fundgrowth := 6 ;
    NewGenCalc.Dynamic := 0 ;
    NewGenCalc.Inflation := 0 ;
    NewGenCalc.PaymentTerm := '20' ;
    NewGenCalc.TargetAmount := '0' ;
    NewGenCalc.TargetWhat := 0 ;
    NewGenCalc.Deathbenefit := '18000' ;
    NewGenCalc.WOP := True ;
    NewGenCalc.Disbenefit := '18000' ;
    NewGenCalc.DisTerm := 5 ;
    NewGenCalc.DepotRate := '0' ;
    NewGenCalc.GrowthSelection := 0 ;
    NewGenCalc.Fundgrowth := 6 ;
    NewGenCalc.Rateind := '0';

    newgencalc.RunCalcCode;

    TLB der DLL: ( wurde gekürzt )

    [code]
    interface


    uses Windows, ActiveX, Classes, Graphics, OleServer, OleCtrls, StdVCL;

    NewGenCalcEngineMajorVersion = 44;
    NewGenCalcEngineMinorVersion = 0;

    LIBID_NewGenCalcEngine: TGUID = '{1D18CCDD-0E1B-11D8-BD03-000874A6B8DA}';

    IID__Calculator: TGUID = '{152A8220-C79A-4E5C-83C7-E971B6CDEFA1}';
    CLASS_Calculator: TGUID = '{1D18CD07-0E1B-11D8-BD03-000874A6B8DA}';
    type

    _Calculator = interface;
    _CalculatorDisp = dispinterface;

    Calculator = _Calculator;


    _Calculator = interface(IDispatch)
    ['{152A8220-C79A-4E5C-83C7-E971B6CDEFA1}']
    procedure Set_Product(var Param1: Smallint); safecall;
    function Get_Product: Smallint; safecall;
    procedure Set_NumberAge(var Param1: WideString); safecall;
    function Get_NumberAge: WideString; safecall;
    procedure Set_sexind(var Param1: Smallint); safecall;
    function Get_sexind: Smallint; safecall;
    procedure Set_NSmok(var Param1: Smallint); safecall;
    function Get_NSmok: Smallint; safecall;
    procedure Set_DateStart(var Param1: WideString); safecall;
    function Get_DateStart: WideString; safecall;
    procedure Set_Pknown(var Param1: Smallint); safecall;
    function Get_Pknown: Smallint; safecall;
    procedure Set_RetAge(var Param1: WideString); safecall;
    function Get_RetAge: WideString; safecall;
    procedure Set_Freq(var Param1: Smallint); safecall;
    function Get_Freq: Smallint; safecall;
    procedure Set_Dynamic(var Param1: Smallint); safecall;
    function Get_Dynamic: Smallint; safecall;
    procedure RunCalcCode; safecall;
    function Get_FVArrays(var InterestRate: Smallint; var iYear: Smallint): Double; safecall;
    function Get_SVArrays(var InterestRate: Smallint; var iYear: Smallint): Double; safecall;
    property sexind: Smallint read Get_sexind write Set_sexind;
    property NSmok: Smallint read Get_NSmok write Set_NSmok;
    property DateStart: WideString read Get_DateStart write Set_DateStart;
    property Pknown: Smallint read Get_Pknown write Set_Pknown;
    property RetAge: WideString read Get_RetAge write Set_RetAge;
    property Freq: Smallint read Get_Freq write Set_Freq;
    property Dynamic: Smallint read Get_Dynamic write Set_Dynamic;
    property FVArrays[var InterestRate: Smallint; var iYear: Smallint]: Double read Get_FVArrays;
    property SVArrays[var InterestRate: Smallint; var iYear: Smallint]: Double read Get_SVArrays;
    end;

    // ************************************************** *******************//
    // DispIntf: _CalculatorDisp
    // Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
    // GUID: {152A8220-C79A-4E5C-83C7-E971B6CDEFA1}
    // ************************************************** *******************//
    _CalculatorDisp = dispinterface
    ['{152A8220-C79A-4E5C-83C7-E971B6CDEFA1}']
    property Product: Smallint dispid 1745027146;
    property NumberAge: WideString dispid 1745027145;
    property sexind: Smallint dispid 1745027144;
    property NSmok: Smallint dispid 1745027143;
    property DateStart: WideString dispid 1745027142;
    property Pknown: Smallint dispid 1745027141;
    property RetAge: WideString dispid 1745027140;
    property Freq: Smallint dispid 1745027139;
    property Dynamic: Smallint dispid 1745027138;
    property RPrem: WideString dispid 1745027137;
    property SPrem: WideString dispid 1745027136;
    property Rateind: WideString dispid 1745027135;
    property Fundgrowth: Double dispid 1745027134;
    property Inflation: Smallint dispid 1745027133;
    property Direkt: Smallint dispid 1745027132;
    property AgeOrTerm: Smallint dispid 1745027131;
    property PaymentTerm: WideString dispid 1745027130;
    property PartSurrs: WideString dispid 1745027129;
    property PerMilleAddLF: WideString dispid 1745027128;
    property PerMilleDurLF: WideString dispid 1745027127;
    property PercentAddLF: WideString dispid 1745027126;
    property PercentAddWOP: WideString dispid 1745027125;
    property YToALF: WideString dispid 1745027124;
    property PercentAddDis: WideString dispid 1745027123;
    property PermilleAddDis: WideString dispid 1745027122;
    property PermilleDurDis: WideString dispid 1745027121;
    property Deathbenefit: WideString dispid 1745027120;
    property Disbenefit: WideString dispid 1745027119;
    property DisTerm: WideString dispid 1745027118;
    property WOP: WordBool dispid 1745027117;
    property SP_No_PolFee: WordBool dispid 1745027116;
    property DepotRate: WideString dispid 1745027115;
    property PDOAmnt: WideString dispid 1745027114;
    property TargetWhat: Smallint dispid 1745027113;
    property TargetAmount: WideString dispid 1745027112;
    property GrowthSelection: Smallint dispid 1745027111;
    property PrivateOption: Smallint dispid 1745027110;
    function CalcFinalSumOfPremiums: Double; dispid 1610809433;
    procedure RunCalcCode; dispid 1610809439;
    property FVArrays[var InterestRate: Smallint; var iYear: Smallint]: Double readonly dispid 1745027109;
    property SVArrays[var InterestRate: Smallint; var iYear: Smallint]: Double readonly dispid 1745027108;
    property iNumberOfYears: Double readonly dispid 1745027107;
    property dPremiumsPA: Double readonly dispid 1745027106;
    property PremForPrem: Double readonly dispid 1745027105;
    property PremiumA: Integer readonly dispid 1745027104;
    property TermB: Smallint readonly dispid 1745027103;
    property BenefitsY: Integer readonly dispid 1745027102;
    property PremiumX: Integer readonly dispid 1745027101;
    property NoGuaranteeAnnuity[var Intrate: Smallint]: Double readonly dispid 1745027100;
    property FiveYearAnnCertain[var Intrate: Smallint]: Double readonly dispid 1745027099;
    property GuaranteeAnnuity[var Intrate: Smallint]: Double readonly dispid 1745027098;
    property RegularPremium: Double readonly dispid 1745027097;
    property SinglePremium: Double readonly dispid 1745027096;
    property Frequency: Double readonly dispid 1745027095;
    property OutputDeathBenefit: Double readonly dispid 1745027094;
    property OutputDisabilityBenefit: Double readonly dispid 1745027093;
    property OutputWOP: WordBool readonly dispid 1745027092;
    property OutputPDOPrem: Double readonly dispid 1745027091;
    property FinalRegularPremium[var Year: Smallint]: Double readonly dispid 1745027090;
    property FundRateChosen: Double readonly dispid 1745027089;
    property FundRateUWPGuar: Double readonly dispid 1745027088;
    property AnnuityRateUWPGuar: Double readonly dispid 1745027087;
    property FinalAnnuity: Double readonly dispid 1745027086;
    property MinInvoked: WordBool readonly dispid 1745027085;
    property MaxInvoked: WordBool readonly dispid 1745027084;
    property UWPDV_ERROR: WordBool readonly dispid 1745027083;
    property NegativeFund: WordBool readonly dispid 1745027082;
    property BenefitIncreaseMin: WordBool readonly dispid 1745027081;
    property BenefitDecreaseMax: WordBool readonly dispid 1745027080;
    property OriginalTerm: Smallint readonly dispid 1745027079;
    property UWPTextMessageString: WideString readonly dispid 1745027078;
    property BenefitsZ: Integer readonly dispid 1745027077;
    property DisabilityY: Integer readonly dispid 1745027076;
    property DisabilityZ: Integer readonly dispid 1745027075;
    property Output_Commission: Integer readonly dispid 1745027074;
    property SOP_Fail_Ind: WordBool readonly dispid 1745027073;
    property Bus_WOP_Prem: Double readonly dispid 1745027072;
    end;

    CoCalculator = class
    class function Create: _Calculator;
    class function CreateRemote(const MachineName: string): _Calculator;
    end;

    implementation

    uses ComObj;

    class function CoCalculator.Create: _Calculator;
    begin
    Result := CreateComObject(CLASS_Calculator) as _Calculator;
    end;

    class function CoCalculator.CreateRemote(const MachineName: string): _Calculator;
    begin
    Result := CreateRemoteComObject(MachineName, CLASS_Calculator) as _Calculator;
    end;
    end.

  • #2
    Was steht an Zeile 576?

    Comment


    • #3
      Da steht die erste übergabe :

      newgencalc.product := 1;
      Zuletzt editiert von einfachso; 22.01.2007, 16:20.

      Comment


      • #4
        Code:
        procedure Set_Product(var Param1
        Parameter ist ein Var-Parameter, deshalb muß einen variable übergeben werden.

        Comment


        • #5
          Habe auch folgenden aufruf versucht.

          newgencalc.set_product := 1;

          wollte der compiler auch nicht haben

          genauso

          newgencalc.set_product (1);

          Also so gesehen alle variaten durchprobiert und keine wurde angenommen

          Comment


          • #6
            Markus meinte "VARIABLE" !!!

            lt. Deklaration benötigst Du, wenn ich das richtig sehe, eine Variable vom Typ SmallInt;

            heißt:
            var
            iDasIsses: SmallInt;
            begin
            iDasIsses := 1;
            newgencalc.product := iDasIsses;
            end;
            Zuletzt editiert von Geert Dade; 24.01.2007, 12:25.

            Comment


            • #7
              Danke Markus hab ich dann auch selber rausbekommen.
              Scheiß VB DLLs

              Na ja kann man nix machen.

              Aber trotzdem danke ;-)

              Comment

              Working...
              X