找回密码
 立即注册

QQ登录

只需一步,快速开始

zz215628064

新手上路

1

主题

3

帖子

38

积分

新手上路

积分
38
  • 35

    金币

  • 主题

  • 帖子

最新发帖
zz215628064
新手上路   /  发表于:2012-9-21 16:08  /   查看:7357  /  回复:5
系统:XP
IDE:vs2008

您好,我本机安装了component one 的 flexgrid 控件
我在一个测试对话框中通过flexgrid的Create函数动态创建了这个OCX控件,在我自己机器上打开这个对话框没有问题,但是当我把这个exe拷贝到其他没有安装component one 的机器上,每次打开都会提示 未授权的这个对话框(如图),请问如何处理?是需要给bstrLicKey传入值么,我也传了
m_grid.Create(_T(""), WS_CHILD|WS_VISIBLE|LVS_ICON, CXTPEmptyRect(), this, IDC_GRID_ITEM, NULL, FALSE, bstrLicenseKey)

BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,
                                UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE,
                                BSTR bstrLicKey = NULL)
        {
                return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
                pPersist, bStorage, bstrLicKey);
        }



如何解决?谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-9-21 16:45:00
沙发
回复 1楼zz215628064的帖子

zz215628064 你好,
一、
下面是清除试用版信息的详细解决方案,用于解决:使用试用版开发。购买 License ,激活开发环境的 AR 产品,但是发布到客户机之后,仍然会弹出试用版提示框问题。

此类问题共分三种情况:
1.        解决方案中有一个工程,试用版开发,开发期间激活,未替换DLL、License.licx 文件为正式版,在B机器上使用。
2.        解决方案中有多个工程,工程A引用了 AR 报表文件,工程B没有引用 AR 报表文件,但B工程引用了工程A。工程 A或工程B  中没有添加正式版DLL、License.licx文件。
3.        如果保证前两个情况都正确使用,那么在机器B 中安装了试用版,也会弹出提示框。

关于以上问题的处理方法:
1.        A机器中试用版 DLL、License.licx 文件替换为正式版。
2.        在多个工程中都添加正式版的DLL、License.licx 文件。
3.        确保工程中的DLL、License.licx 文件为正式版。卸载机器 B 中的AR试用版。

下面是清除试用版信息的详细解决方案:
1、删除使用了AR工程中 AR 相关的DLL引用
2、删除使用了AR的工程中 licenses.licx 文件
3、在工程中添加一个新的窗体(为了自动生成Licenses.licx,并自动添加AR相关的Dll引用)
4、在VS工具箱中将AR控件添加到窗体中,此时会自动添加AR相关的Dll引用,并自动生成licenses.licx文件(需要确认DLL和License中AR的版本号是否正确)
5、对解决方案中所有工程进行1-4步操作。(一般客户会在该步骤出现问题,一定要针对项目的所有工程进行操作)
6、Rebuild整个解决方案 。
7、重新发布。


2.如果没能解决问题,请发 Demo 到论坛调试。
回复 使用道具 举报
zz215628064
新手上路   /  发表于:2012-9-21 17:06:00
板凳
首先。感谢您的及时回答。您说的这个方法不对。我自己测试了一下/问题的解决方法是这样的
,我写了一个函数在我的本机(本机已经安装了Component One)上运行获得这个FlexGrid的LicenseKey 。然后在测试机(测试机没安装Component One)上也运行了这个获得LicenseKey程序,发现获得不到LicenseKey,所以我在动态创建这个OCX的时候将这个本机上获得的Key直接写到Create的最后一个参数而不是再到软件运行的机器上去获得,就没有问题了。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-9-21 17:18:00
地板
回复 3楼zz215628064的帖子

好的,感谢您的反馈,能否把操作 所以我在动态创建这个OCX的时候将这个本机上获得的Key直接写到Create的最后一个参数而不是再到软件运行的机器上去获得, 的方法给大家共享下呢?
回复 使用道具 举报
zz215628064
新手上路   /  发表于:2012-9-21 17:24:00
5#
就是说,我在已经安装Component One的机器上面。通过一个函数获得出来这个LicenseKey,然后在需要动态创建这个OCX控件的时候直接
m_grid.Create(lpszWindowName, dwStyle, rect, pParentWnd,
                                nID, pPersist(默认为NULL), Storage(默认为FALSE),
                                bstrLicKey); 直接将通过小工具获得Key值替换bstrLicKey 就不提示未授权了
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-9-21 17:35:00
6#
回复 5楼zz215628064的帖子

真棒
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部