±ÍÇÏ´Â ¼Õ´Ô À̽ʴϴÙ
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ
  
  µ¨¸¶´ç °ø½Ä ÀºÇà°èÁÂ
  ÇϳªÀºÇà 227-910235-83607
  ¿¹±ÝÁÖ ÀÌ»ó±¹(¿î¿µÁø)
ÇÁ·ÎÁ§Æ® °Ô½ÃÆÇ
ÅõÇ¥°Ô½ÃÆÇ
µ¨¸¶´ç¼Ò°³
±âÃʺÎÅÍ È°¿ë±îÁö! µ¨ÆÄÀÌ ±³À° - µ¥ºê±â¾î
Áú¹®°ú ´äº¯ Áú¹®°ú ´äº¯ ÀÔ´Ï´Ù.
±Û³»¿ë - Áú¹®°ú ´äº¯
 [Áú¹®]c ¿¡¼­ ÀÛ¼ºÇÑ dll ¿¡¼­ ÇÔ¼öÈ£Ãâ½Ã Access Viiolation ¿À·ù°¡ ¹ß»ý ¹®ÀÇ
³ª¶ó²É
(ÃÖÀº¼®)
2017-04-21 ¿ÀÈÄ 1:37:52
691ȸ Á¶È¸


µî·ÏµÈ ÆÄÀÏÀÌ ¾ø½À´Ï´Ù.
1. °³¹ß/½ÇÇà Ç÷§Æû 
  (1) OS :  win7
  (2) °³¹ßÅø : µ¨ÆÄÀÌ7
  (3) »ç¿ë Database : ÀÎÆ÷¹Í½º

2. °³¹ß ÁßÀΠÇÁ·Î±×·¥  °í°´¼¾ÅÍ ¾÷¹«¿ë

3. Áú¹® ³»¿ë: CTI ¼­¹ö¿¡ ·Î±×ÀÎÇϱâ À§Çؼ­ ÇÔ¼öÈ£Ãâ½Ã Access Violation dhfbrk qkftodgkqslek.
            ¿Ö ¿À·ù°¡ ³ª´Â°É±î¿ä?
            ¾Æ·¡ ³»¿ëÀÌ °ü·Ã ¼Ò½ºÄÚµåÀÔ´Ï´Ù.
            °í¼ö´ÔµéÀÇ Á¶¾ð ºÎŹµå¸³´Ï´Ù.
          

   C ÇÔ¼ö¼±¾ð
nxcapiOpenServerHA(ctmpGateID     *gate,
           ctmpInvokeID   invokeID,
           ctmpOpenData   *openData,
           ctmpNameString   primaryIP,
           ctmpNameString   secondaryIP,
           ctmpINT     portNo,
           ctmpNetString networkType,
           ctmpApplString   appName, 
           ctmpSyncMode_Def mode,
           ctmpINT     defPbx);
           
ÆĶó¹ÌÅ͠ŸÀÔÀº ¾Æ·¡¿Í °°½À´Ï´Ù.            
ctmpGateID    : unsigned int  <-- ÇÔ¼öÈ£Ãâ½Ã °ªÀ» ¹Þ¾Æ¿É´Ï´Ù.
  ctmpInvokeID  : unsigned int
  ctmpOpenData  : struct ctmpOpenData {
                          ctmpGateMode_Def deviceType;
                          ctmpServerVersion_Def APIversion;
                          ctmpCTILink_Def APIextensions;
                          ctmpDeviceString deviceDn;
                          } ctmpOpenData;
                          
                          ctmpGateMode_Def :
                          typedef enum ctmpGateMode_Def {
                                     ctmpV_Dn = 0,
                                   ctmpV_RoutePoint = 1,
                                   ctmpV_MonitorGate = 2,
                                   ctmpV_Manager = 9
                                     } ctmpGateMode_Def;
                                     
                          ctmpServerVersion_Def :           
                          typedef enum ctmpServerVersion_Def {
                                     ctmpV_CTMPV20 = 0x20,
                                     ctmpV_CTMPV30 = 0x30, // ~2.7
                                     ctmpV_CTMPV28 = 0x28  // 2.8
                                     } ctmpServerVersion_Def;
                                     
                          ctmpCTILink_Def :           
                          typedef enum ctmpCTILink_Def {
                                       ctmpV_None = 0,
                                   ctmpV_ASAI = 1,
                                   ctmpV_Meridian = 2,
                                   ctmpV_CSTA1 = 3,
                                   ctmpV_CSTA2 = 4,
                                   ctmpV_CSTA3 = 5,
                                   ctmpV_NotSupport = 7
                                    } ctmpCTILink_Def;           
                                    
                          ctmpDeviceString :
                           char[24]          
    ctmpNameString : char[16]    
    ctmpINT        : unsigned int
    ctmpNetString  : char[16]
    ctmpApplString : char[64;
    ctmpSyncMode_Def : typedef enum ctmpSyncMode_Def {
                                  ctmpV_SYNC = 1, 
                                ctmpV_ASYNC = 2,
                                ctmpV_ASYNC_EVENT = 3
                                  } ctmpSyncMode_Def;
   ctmpINT         : unsigned int                                  
   
   

 µ¨ÆÄÀÌ¿¡¼­´Â ´ÙÀ½Ã³·³ ¼±¾ðÇÏ°í È£ÃâÇß½À´Ï´Ù.
  // ctmpGateMode_Def.....
  p_ctmpV_Dn          = 0;
  p_ctmpV_RoutePoint  = 1;
  p_ctmpV_MonitorGate = 2;
  p_ctmpV_Manager     = 9;

  // ctmpServerVersion_Def............
  p_ctmpV_CTMPV20     = 0x20;
  p_ctmpV_CTMPV30     = 0x30;
  p_ctmpV_CTMPV28     = 0x28;

  // ctmpCTILink_Def.....
  p_ctmpV_None        = 0;
  p_ctmpV_ASAI        = 1;
  p_ctmpV_Meridian    = 2;
  p_ctmpV_CSTA1       = 3;
  p_ctmpV_CSTA2       = 4;
  p_ctmpV_CSTA3       = 5;
  p_ctmpV_NotSupport  = 7;


  // ctmpSyncMode_Def....
  p_ctmpV_SYNC        = 1;
  p_ctmpV_ASYNC       = 2;
  p_ctmpV_ASYNC_EVENT = 3;
 
 
  PcubeOpenData = packed record
     pdeviceType    : Integer;
     APIversion     : Integer;
     pAPIextensions : Integer;
     pdeviceDn      : PChar;
  end; 
  
  function _nxcapiOpenServerHA (var gate    : Integer;       
                                invokeID    : Integer;       
                                openData    : PcubeOpenData; 
                                serverName  : PChar;         
                                serverName2 : PChar;         
                                portNo      : Integer;       
                                networkType : PChar;
                                appName     : PChar;         
                                mode        : Integer;       
                                defPbx      : Integer) : Integer; stdcall; external 'nxcapi.dll' name 'nxcapiOpenServerHA';  


  ½ÇÁ¦ È£ÃâºÎºÐ......    
var  
    igate         : Integer;       
    L_gate        : Integer;       
    L_invokeID    : Integer;                                          
    L_openData    : PcubeOpenData; 
    L_serverName  : PChar;         
    L_serverName2 : PChar;        
    L_portNo      : Integer;       
    L_networkType : PChar;         
    L_appName     : PChar;        
    L_mode        : Integer;                                                                             
    L_defPbx      : Integer;       
    
     ~~~
    
      L_invokeID                 := 1;  
      L_openData.pdeviceType     := p_ctmpV_Dn;
      L_openData.APIversion      := 0;
      L_openData.pAPIextensions  := p_ctmpV_None;
      L_openData.pdeviceDn       := PChar('190');  
      L_serverName               := PChar('211.56.188.46'); 
      L_serverName2              := PChar('211.56.188.47'); 
      L_portNo                   := 9707;    
      L_networkType              := PChar('0');  
      L_appName                  := PChar('KGLogis');  
      L_mode                     := p_ctmpV_SYNC;                                                                                                         
      L_defPbx                   := 0;      


         iRtnServerOpen := _nxcapiOpenServerHA ( igate,
                                               L_invokeID,
                                               L_openData,
                                               L_serverName,
                                               L_serverName2,
                                               L_portNo,
                                               L_networkType,
                                               L_appName,
                                               L_mode,
                                               L_defPbx);