准备工作

请安装 Visual Studio 2008 的最新 Service Pack 版本,否则有可能出现运行时错误,需要手工修改工程设置。

在开始建立集成比特授权云客户端API的应用程序之前,开发人员必须在控制台上完成设立产品、模版以及授权码的工作,并且下载了与开发语言一致的客户端库和接口定义文件。

对于在Visual Studio 2008上开发MFC应用程序,开发人员应该下载“MD静态库”以及“C语言头文件”。静态库的文件名是唯一的,与授权产品相关。其格式形如:xxxxxxxx_xxxxxxxx_md.lib,其中的xx为代表16进制整数的字符。C语言头文件的文件名为:bitanswer.h

更多有关比特授权云控制台的操作,请参考 使用控制台完成授权设计

MD静态库与MT静态库:在下载时选择MD静态库或MT静态库取决于项目类型和编译选项。相关的说明可以参考 这里

可以直接下载C/C++ 语言开发包,其中已经包含了所需的MT静态库、MD静态库和头文件。

在Visual Studio 2008上建立新的MFC应用程序工程

打开VS2008的IDE界面,从菜单中选择 File->New->Project,在弹出的“New Project”对话框中选择“Visual C++”下面的“MFC Application”。在下面的“Name”栏里输入 BitSample 或者其它表示该工程的名称。点击“OK”,进入“MFC Application Wizard”。

在设置中选择“Application type”为“Dialog Based”,并且不要选择“Use Unicode libraries”,这是为了在代码中输入SN串时避免在Unicode和非Unicode之间转换。

保持其它缺省设置不变,直接点击“Finish”完成应用程序设置。

Build新建立的工程,将成功出现如下所示的对话框:

缺省的MFC对话框

在工程中添加比特授权云安全库支持

把准备工作中下载的静态库及头文件拷贝到MFC工程目录下。在Solution Explorer中将头文件添加到项目文件树里。

在 bitanswer.h 文件中已经包含了对MD静态库的引用:

#pragma comment(lib,"xxxxxxxx_xxxxxxxx_md.lib")

在对话框类头文件(这里是BitSampleDlg.h)头部添加

#include "bitanswer.h"

在CBitSampleDlg类中添加新的私有变量BIT_HANDLE m_handle;,用于保存Login之后产生的句柄。

在对话框界面上添加ID为 ID_SN 的编辑框,以及 Login 和 Logout 按钮。为 ID_SN 添加 CString 类型的变量,变量名为:m_sn。ID_SN用于输入授权码,而 Login、Logout 按钮用于执行相应的登入和登出操作。新的对话框看起来像下面的样子:

添加了SN和登入登出按钮的对话框

双击Login和Logout按钮,为它们添加处理函数。下面给出了最简单的通过按钮调用 Bit_Login 和 Bit_Logout 函数的例子代码。代码中简单地弹出Windows Message对话框提示函数执行的状态。

void CBitSampleDlg::OnBnClickedLogin()
{
    UpdateData();

    BIT_STATUS  bs = Bit_Login(NULL, m_sn, application_data, &m_handle, BIT_MODE_AUTO);
    if (bs == BIT_SUCCESS) {
        MessageBox("登录成功!");
    } else {
        m_handle = NULL;
        MessageBox("登录失败");
    }
}

void CBitSampleDlg::OnBnClickedLogout()
{
    if (m_handle == NULL)
        return;

    BIT_STATUS  bs = Bit_Logout(m_handle);
    if (bs == BIT_SUCCESS)
        MessageBox("Logout成功!");
    else
        MessageBox("Logout失败");

    m_handle = NULL;
}

在上面的代码中,调用Bit_Login时输入了5个参数。第一个参数是授权服务器地址,如果为NULL,则使用默认的比特授权服务器进行认证;第二个参数是输入的授权码;第三个参数是Application Data,它是定义在bitanswer.h头文件中的与产品相关的安全数据,开发人员不需要去定义和改变它;第四个参数是返回的环境句柄,用于今后对其它API的调用;最后一个参数是 LOGIN_MODE 枚举类型,用于定义登录模式,这里设为自动模式。

注意事项

在Project Properties -> Linker -> Input中,将 MSVCRT; MSVCR90 加入忽略列表,可以避免编译警告或有些情况下出现的不能找到msvcd90.dll运行时错误。

对于64位Windows应用程序或Linux下的应用程序,应分别下载相应的库。

现在你的第一个MFC应用程序应该已经可以正常运行了。可以参考 C语言接口定义 为程序添加更多的功能。祝你开发愉快!