clientmain.cpp

来自「C++Builder高级应用开发指南随书源码」· C++ 代码 · 共 74 行

CPP
74
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "ClientMain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmMain *frmMain;
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::btnStaticClick(TObject *Sender)
{
#include "DllFunc.h"

    ShowAbout();    
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::btnDynamicClick(TObject *Sender)
{
    HINSTANCE ins;
    ins = LoadLibrary("Dll.dll");
    if(ins == NULL)
        throw "Can't Load Library!";

    FARPROC proc;
    proc = GetProcAddress(ins,"_AnotherAbout");
    if(proc == NULL)
    {
        FreeLibrary(ins);
        throw "Can't Get Proc Address!";
    }
    proc();

    if(!FreeLibrary(ins))
    {
        throw "Can't Free!";
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::btnParaClick(TObject *Sender)
{
    HINSTANCE ins;
    ins = LoadLibrary("Dll.dll");
    if(ins == NULL)
        throw "Can't Load Library!";

    FARPROC proc;
    proc = GetProcAddress(ins,"_ParaAbout");
    if(proc == NULL)
    {
        FreeLibrary(ins);
        throw "Can't Get Proc Address!";
    }
    typedef void (* FUNC)(char *, char *);
    FUNC aFunc=(FUNC)proc;
    aFunc("C++ builder","Hello, World!");

    if(!FreeLibrary(ins))
    {
        throw "Can't Free!";
    }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?