Home > Archive > Cobol > October 2006 > accessing Microfocus DLL from Delphi
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
accessing Microfocus DLL from Delphi
|
|
| Stephen K. Miyasato 2006-10-05, 6:55 pm |
| I'm still having difficultly calling the microfocus dll which was written in
microfocus visual cobol for Windows 95.
Questions
1. 03 PC-FILE-CMD PIC 9(02).
What is the PIC 9(02)? can I use array[0..1] of char ?
2. The DLL does not seem to load when Delphi starts. Any idea on how to
debug?
3. The delphi code
http://supportline.microfocus.com/e...p#MixedLanguage
does not work. Perhaps I have an older version of Visual Object. The dll
does not even load.
4. Do I use Pointers? i.e. pPCT= ^pcT;
Thanks
Stephen K. Miyasato
MDsync
Delphi code below
//Delphi code below
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
pPCT= ^pcT;
pcT = packed record //PIBS Comm
ver : array[0..5]of char; //6
verDate : array[0..7]of char ;//8
prog : array[0..31]of char ; //32
err : array[0..2]of char; //3
first : array[0..0]of char; //1first Call
mibsFlg : array[0..0]of char; //1 y MIBS is present N = no
initFlg: array[0..0]of char; //1 y means initialized new files
//rand : smallint ; //random number
filSt : array[0..4]of char ; //5
f1 : array[0..0]of char; //1
date : array[0..7]of char ; //8 char
time : array[0..3]of char ; //4
fCmd : array[0..1]of char ; //2 File command
fName: array[0..23]of char ; //24 file name
//Temp : array [0..1395] of char ;
nAcct : array[0..9]of char ; //10 Next account number
nPat : array[0..9]of char ; //10 next pat number
debug : array[0..1]of char ; //2 debug flag
lCls : array[0..7]of char ; //8 last closed date
qName : array[0..23]of char ; //24 query com are name
qAcct : array[0..11]of char ; //12 Account Number (num & type)
qPat : array[0..9]of char ; //10 pat Number
qClm : array[0..3]of char ; //4 claim number
qcurTyp : array[0..0]of char; //1 Current account type index PIC 9
qCmd : array[0..0]of char; //1 command
qCmdS : array[0..0]of char; //1 sub command
qFunc : array[0..0]of char; //1 function
qMod : array[0..0]of char; //1 mode
qFuncS : array[0..0]of char ; //1 sub function
qClaimNumArc : array[0..0]of char ; // 1 qc-Claim-num-arc
qClaimOrder : array[0..0]of char ; //1 qc-claim-order
qClaimFrm : array[0..0]of char ; // 1 qc-claim-frm
qTransOrder : array[0..0]of char ; //1 qc-trans-order
qTransFrm : array[0..0]of char ; // 1 qc-trans-frm
qClaimArch : array[0..0]of char ; // 1 qc-claim-archive
qTransArch : array[0..0]of char ; // 1 qc-trains-archive
filler : array[0..0]of char ; // 1 filler
pcPmtDate : array[0..7]of char ; // 8 pc-pmt-date
pcChgDate : array[0..8]of char ; // 8 pc-chg-date
pvMsgLine : array[0..53]of char ; // 54 PV-MSG-LINE
fKey1 : array[0..5]of char ; //Function-key-def F1
fKey2 : array[0..5]of char ; //Function-key-def F2
fKey3 : array[0..5]of char ; //Function-key-def F3
fKey4 : array[0..5]of char ; //Function-key-def F4
fKey5 : array[0..5]of char ; //Function-key-def F5
fKey6 : array[0..5]of char ; //Function-key-def F6
fKey7 : array[0..5]of char ; //Function-key-def F7
fKey8 : array[0..5]of char ; //Function-key-def F8
fKey9 : array[0..5]of char ; //Function-key-def F9
fKey10 : array[0..5]of char ; //Function-key-def F10
mibsDir: array[0..35] of char; // 36 mibs-dir
mibsWs: array[0..35] of char; // 36 mibs-ws-dir
mibsArc: array[0..35] of char; // 36 mibs-arc
hipUpDir: array[0..35] of char; //36 hip-up-dir
hipRemDir: array[0..35] of char; //36 hip-rem-dir
filler2: array[0..35] of char; // 36 filler2
AcctOpenFlag: array[0..0] of char; // 1 ACCT-OPEN-FLAG
AcctTypeOpenFlag: array[0..0] of char; // 1 ACCT-TYPE-OPEN-FLAG
ClaimOpenFlag: array[0..0] of char; // 1 CLAIM-OPEN-FLAG
CodesOpenFlag: array[0..0] of char; // 1 CODES-OPEN-FLAG
CreditOpenFlag: array[0..0] of char; // 1 CREDIT-OPEN-FLAG
CustomerOpenFlag: array[0..0] of char; // 1 CUSTOMER-OPEN-FLAG
DebitOpenFlag: array[0..0] of char; // 1 DEBIT-OPEN-FLAG
DeptOpenFlag: array[0..0] of char; // 1 DEPT-OPEN-FLAG
DxOpenFlag: array[0..0] of char; // 1 DX-OPEN-FLAG
ErrorOpenFlag: array[0..0] of char; // 1 Error-OPEN-FLAG
InsCompanyOpenFlag: array[0..0] of char; // 1 INS-COMPANY-OPEN-FLAG
NamesOpenFlag: array[0..0] of char; // 1 NAMES-OPEN-FLAG
PatOpenFlag: array[0..0] of char; // 1 PAT-OPEN-FLAG
PlaceOpenFlag: array[0..0] of char; // 1 PLACE-OPEN-FLAG
ProcOpenFlag: array[0..0] of char; // 1 PROC-OPEN-FLAG
ProviderOpenFlag: array[0..0] of char; // 1 PROVIDER-OPEN-FLAG
ReferDrOpenFlag: array[0..0] of char; // 1 REFER-DR-OPEN-FLAG
StmtOpenFlag: array[0..0] of char; // 1 STMT-OPEN-FLAG
ZipOpenFlag: array[0..0] of char; // 1 ZIP-OPEN-FLAG
Temp1OpenFlag: array[0..0] of char; // 1 temp1-OPEN-FLAG
ClaimHoldOpenFlag: array[0..0] of char; // 1 CLAIM-HOLD-OPEN-FLAG
DayStatOpenFlag: array[0..0] of char; // 1 DAY-STAT-OPEN-FLAG
DayHistOpenFlag: array[0..0] of char; // 1 DAY-HIST-OPEN-FLAG
CycleOpenFlag: array[0..0] of char; // 1 CYCLE-OPEN-FLAG
AcctNoteOpenFlag: array[0..0] of char; // 1 ACCT-NOTE-OPEN-FLAG
temp2OpenFlag: array[0..0] of char; // 1 temp2-OPEN-FLAG
temp3OpenFlag: array[0..0] of char; // 1 temp3-OPEN-FLAG
emcHoldOpenFlag: array[0..0] of char; // 1 EMC-HOLD-OPEN-FLAG
setupOpenFlag: array[0..0] of char; // 1 SETUP-OPEN-FLAG
PatInsOpenFlag: array[0..0] of char; // 1 pat-ins-OPEN-FLAG
recallOpenFlag: array[0..0] of char; // 1 recall-OPEN-FLAG
collectOpenFlag: array[0..0] of char; // 1 COLLECT-OPEN-FLAG
reasonOpenFlag: array[0..0] of char; // 1 REASON-OPEN-FLAG
dxEditOpenFlag: array[0..0] of char; // 1 dx-edit-OPEN-FLAG
procEditOpenFlag: array[0..0] of char; // 1 proc-edit-OPEN-FLAG
macroProcOpenFlag: array[0..0] of char; // 1 macro-Proc-OPEN-FLAG
probTempOpenFlag: array[0..0] of char; // 1 Prob-temp-OPEN-FLAG
rxOpenFlag: array[0..0] of char; // 1 rx-OPEN-FLAG
patRxOpenFlag: array[0..0] of char; // 1 pat-Rx-OPEN-FLAG
arcOpenFlag: array[0..0] of char; // 1 arc-OPEN-FLAG
LogOpenFlag: array[0..0] of char; // 1 log-OPEN-FLAG
arcClaimOpenFlag: array[0..0] of char; // 1 Arc-Claim-OPEN-FLAG
arcDebitOpenFlag: array[0..0] of char; // 1 arc-Debit-OPEN-FLAG
arcCreditOpenFlag: array[0..0] of char; // 1 arc-Credit-OPEN-FLAG
claimSuspOpenFlag: array[0..0] of char; // 1 Claim-susp-OPEN-FLAG
stmtHistOpenFlag: array[0..0] of char; // 1 stmt-hist-OPEN-FLAG
creditSplitOpenFlag: array[0..0] of char; // 1 Credit-split-OPEN-FLAG
tickOpenFlag: array[0..0] of char; // 1 tick-OPEN-FLAG
textMacroOpenFlag: array[0..0] of char; // 1 text-Macro-OPEN-FLAG
DepositOpenFlag: array[0..0] of char; // 1 Deposit-OPEN-FLAG
pmtProfOpenFlag: array[0..0] of char; // 1 pmt-prof-OPEN-FLAG
probOpenFlag: array[0..0] of char; // 1 prob-OPEN-FLAG
apptSumOpenFlag: array[0..0] of char; // 1 appt-sum-OPEN-FLAG
apptPatOpenFlag: array[0..0] of char; // 1 appt-Pat-OPEN-FLAG
visitOpenFlag: array[0..0] of char; // 1 visit-OPEN-FLAG
visitCodeOpenFlag: array[0..0] of char; // 1 visit-Code-OPEN-FLAG
PatxOpenFlag: array[0..0] of char; // 1 Patx-OPEN-FLAG
vitalOpenFlag: array[0..0] of char; // 1 vital-OPEN-FLAG
authorOpenFlag: array[0..0] of char; // 1 author-OPEN-FLAG
cciOpenFlag: array[0..0] of char; // 1 cci-OPEN-FLAG
dxMasterOpenFlag: array[0..0] of char; // 1 dx-master-OPEN-FLAG
procDxOpenFlag: array[0..0] of char; // 1 proc-Dx-OPEN-FLAG
loginOpenFlag: array[0..0] of char; // 1 login-OPEN-FLAG
apptLogOpenFlag: array[0..0] of char; // 1 appt-log-OPEN-FLAG
hospPatOpenFlag: array[0..0] of char; // 1 hosp-pat-OPEN-FLAG
insExtOpenFlag: array[0..0] of char; // 1 ins-ext-OPEN-FLAG
hipSubOpenFlag: array[0..0] of char; // 1 hip-OPEN-FLAG
filler3: array[0..12] of char; // 13 filler
temp1FileName: array[0..35] of char; // 36 temp1-file-name
temp2FileName: array[0..35] of char; // 36 temp2-file-name
temp3FileName: array[0..35] of char; // 36 temp3-file-name
apptLogName: array[0..35] of char; // appt-log-file-name
linesPerPage: array[0..1] of char; // 2 lines per page pic 9
cancelCondensedMode: array[0..15] of char ; // 16 cancel-condensed-mode
end;
{ pPCT= ^pcT;
pcT = packed record //PIBS Comm
ver : array[0..11]of char; //6
verDate : array[0..15]of char ;//8
prog : array[0..63]of char ; //32
err : array[0..5]of char; //3
first : array[0..1]of char; //1first Call
mibsFlg : array[0..1]of char; //1 y MIBS is present N = no
initFlg : array[0..1]of char; //1 y means initialized new files
//rand : smallint ; //random number
filSt : array[0..9]of char ; //5
f1 : array[0..1]of char; //1
date : array[0..15]of char ; //8 char
time : array[0..7]of char ; //4
fCmd : array[0..1]of char ; //2 File command
fName: array[1..47]of char ; //24 file name
nAcct : array[0..19]of char ; //10 Next account number
nPat : array[0..19]of char ; //10 next pat number
debug : array[0..1]of char ; //2 debug flag
lCls : array[0..15]of char ; //8 last closed date
qName : array[0..47]of char ; //24 query com are name
qAcct : array[0..23]of char ; //12 Account Number (num & type)
qPat : array[0..19]of char ; //10 pat Number
qClm : array[0..7]of char ; //4 claim number
qcurTyp : array[0..1]of char; //1 Current account type index
qCmd : array[0..1]of char; //1 command
qCmdS : array[0..1]of char; //1 sub command
qFunc : array[0..1]of char; //1 function
qMod : array[0..1]of char; //1 mode
qFuncS : array[0..1]of char ; //1 sub function
f2 : array[0..15]of char; //8 Flags to be later enumerated
pmtDate : array[0..15]of char; //8 payment date
chgDate : array[0..15]of char; //8 charge date
msg : array[0..107]of char ; //54 msg line
f3 : array[0..119]of char ; //60 function key defn
paths : array[0..1919]of char ; //960 file paths
// file open flags
accctOpen : array[0..1]of char;// 1
aTypOpen : array[0..1]of char; // 1
claimOpen : array[0..1]of char;// 1
open : array[0..153]of char; // 77 file open flag
f4 : array[0..143]of char ; // 72 filler
apptLogN: array[0..47]of char; // 24 appt log file name
f5 : array[0..67]of char ; // 34 filler
end;
| |
| HeyBub 2006-10-05, 6:55 pm |
| Stephen K. Miyasato wrote:
> I'm still having difficultly calling the microfocus dll which was
> written in microfocus visual cobol for Windows 95.
>
> Questions
> 1. 03 PC-FILE-CMD PIC 9(02).
> What is the PIC 9(02)? can I use array[0..1] of char ?
The data name PC-FILE-CMD is two bytes long and consists of integers only.
You can use an array with suitable redefinitions (I presume you want each
byte).
> 2. The DLL does not seem to load when Delphi starts. Any idea on how
> to debug?
The "D" in DLL stands for "Dynamic." It won't load until required by the
calling program. To debug the COBOL, you'll need the debugger that came with
the compiler (and possibly a re-compile to imbed debugging code within the
executable code).
> 3. The delphi code
> http://supportline.microfocus.com/e...p#MixedLanguage
> does not work. Perhaps I have an older version of Visual Object. The
> dll does not even load.
> 4. Do I use Pointers? i.e. pPCT= ^pcT;
Pointers are a no-no in COBOL.
>
>
> Thanks
>
> Stephen K. Miyasato
> MDsync
>
| |
| James J. Gavan 2006-10-06, 6:55 pm |
| Stephen K. Miyasato wrote:
> I'm still having difficultly calling the microfocus dll which was written in
> microfocus visual cobol for Windows 95.
>
> Questions
> 1. 03 PC-FILE-CMD PIC 9(02).
> What is the PIC 9(02)? can I use array[0..1] of char ?
> 2. The DLL does not seem to load when Delphi starts. Any idea on how to
> debug?
> 3. The delphi code
> http://supportline.microfocus.com/e...p#MixedLanguage
> does not work. Perhaps I have an older version of Visual Object. The dll
> does not even load.
While the above link gives you an example, have you tried asking Micro
Focus ? Join their Forum at microfocus.com and post your question there,
under the appropriate heading. If your compiler isn't listed then put
your question under 'Other Products'.
Jimmy
|
|
|
|
|