Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[4896] >질문< zmodem32.dll 사용법 다시
bmis [ ] 1524 읽음    1998-10-15 07:46
제가 요즘 1:1통신프로그램을 짜고있는데 화일전송 부분에서 막혀
고민하고있던중 하이텔에서 윈도용 프로토콜 zmodem32.dll을
그했거든요. 그런데 c++로 싸여 있더라구요. 델에서는 사용을 할수있는지
없는지 조차모르겠어요.
제가 zmodem32.dll 소스를 올려놓겠습니다.
좀 봐주세요. 델에서 사용할수있는지..

// ZModem32.cpp : Defines the initialization routines for the DLL.
//

#include "stdafx.h"
#include <afxdllx.h>

#include "z32dlg.h"
#include "zmodem32.h"
#include "zmodem.h"


#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif

static AFX_EXTENSION_MODULE ZModem32DLL = { NULL, NULL };

extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
        if (dwReason == DLL_PROCESS_ATTACH)
        {
        TRACE0("ZMODEM32.DLL Initializing!\n");
               
        // Extension DLL one-time initialization
                AfxInitExtensionModule(ZModem32DLL, hInstance);

                // Insert this DLL into the resource chain
                new CDynLinkLibrary(ZModem32DLL);
        }
        else if (dwReason == DLL_PROCESS_DETACH)
        {
                TRACE0("ZMODEM32.DLL Terminating!\n");
        }
        return 1;   // ok
}


extern ZMODEM    *_Zmodem;

int WinZmodem32Receive (HANDLE idComDev, char *szPathname, WORD wOption, ZRESULT* pZResult)
{
    CZ32Dlg  MyZmodem;

    //
    //  Set Parameters
    //
    MyZmodem.m_idComDev = idComDev;
    MyZmodem.m_nSession = SESSION_ZMODEM_RECEIVE;
    MyZmodem.m_wOption = wOption;
    strcpy (MyZmodem.m_szReceiveDirectory, szPathname);

    MyZmodem.DoModal ();

    strcpy (pZResult->szReceiveFilenames, MyZmodem.m_Zmodem.m_szReceiveFilenames);
    pZResult->tStartTrans   = MyZmodem.m_Zmodem.m_tStartTrans;
    pZResult->tEndTrans     = MyZmodem.m_Zmodem.m_tEndTrans;

    pZResult->lTotalBytes   = _Zmodem->lPacket;
    pZResult->nAverageCPS   = MyZmodem.m_Zmodem.m_nCPS;
    pZResult->nErrorOccured = _Zmodem->nTotalRetries;
    pZResult->nErrorCode    = MyZmodem.m_Zmodem.m_nErrorCode;

    return (MyZmodem.m_Zmodem.m_nErrorCode);
}

int WinZmodem32Send (HANDLE idComDev, char *szFilenames, WORD wOption, ZRESULT* pZResult)
{
    CZ32Dlg  MyZmodem;

    //
    //  Set Parameters
    //
    MyZmodem.m_idComDev = idComDev;
    MyZmodem.m_nSession = SESSION_ZMODEM_SEND;
    MyZmodem.m_wOption = wOption;
    strcpy (MyZmodem.m_szSendFilenames, szFilenames);

    MyZmodem.DoModal ();

    pZResult->tStartTrans   = MyZmodem.m_Zmodem.m_tStartTrans;
    pZResult->tEndTrans     = MyZmodem.m_Zmodem.m_tEndTrans;

    pZResult->lTotalBytes   = _Zmodem->lPacket;
    pZResult->nAverageCPS   = MyZmodem.m_Zmodem.m_nCPS;
    pZResult->nErrorOccured = _Zmodem->nTotalRetries;
    pZResult->nErrorCode    = MyZmodem.m_Zmodem.m_nErrorCode;

    return (MyZmodem.m_Zmodem.m_nErrorCode);
}

int GetDllVersion (void)
{
    return 999;
}

무척 귀찬으신줄 압니다..
그래도 이렇게 보아주신것에 대해 감사드립니다.
제발 힌트라도 좀 주시면 고맙겠습니다.



+ -

관련 글 리스트
4896 >질문< zmodem32.dll 사용법 다시 bmis 1524 1998/10/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.