准备工作

请安装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语言接口定义 为程序添加更多的功能。 祝你开发愉快!