support
barcode VC++ barcode VC++
barcode VC++ COM Object download

Print Barcode From Visual C++ Application


为了在VC++应用程式中打印 条形码 , 你需要 barcodesoft 字体和 cruflbcs.dll .

Barcodesoft 的软体支持几乎所有的线形和二维的条形码, 包括code39, code128, UPC-A, EAN-13, UCC/EAN-128, Interleaved 2 of 5, POSTNet .
如果你下载并且安装了试用版 Barcodesoft 软体 ,
你将会在以下文件夹里面发现 crUFLBCS.dll
"C:\Program Files\Common Files\Barcodesoft\Fontutil\" folder.

如果你的电脑上找不到 cruflbcs.dll 请点击以下链接下载 Barcode VC++ .

crUFLBCS.dll 是一个 COM object, 它有以下的 ILinear 接口。
有关 ILinear 接口的详细资料, 可以从 Barcodesoft 软体用户手册中找到.

为了调用 ILinear 接口中的各种方法, 你既可以使用 Late Binding 也可以使用 Early Binding.

晚期绑定用在编译的时候不知道所有接口信息情况下。

早期绑定需要客户在编译前就得到所有的接口信息.
CoInitialize(NULL);
CLSID clsid;
if (FAILED(::CLSIDFromProgID(L"cruflbcs.Linear.1", &clsid)))
return 0;
IDispatch* pIDispatch = NULL;
if (FAILED(::CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, IID_IDispatch, (void**)&pIDispatch)))
return 0;
LPOLESTR szNameEncode = L"UCCEAN128";
DISPID dispid_uccean128;
HRESULT hr = pIDispatch->GetIDsOfNames(IID_NULL, &szNameEncode, 1, LOCALE_SYSTEM_DEFAULT, &dispid_uccean128);
CComBSTR bstrResult;
VARIANTARG v[1];
v[0].vt = VT_BSTR; v[0].bstrVal = SysAllocString(L"..."); // <==put your data here
DISPPARAMS dispParams = { v, NULL, 1, 0 };
VARIANT vResult;
hr = pIDispatch->Invoke( dispid_uccean128, IID_NULL, GetUserDefaultLCID(), DISPATCH_METHOD,
&dispParams, &vResult, NULL, NULL);
if (FAILED(hr))
return 0;
pIDispatch->Release();
CoUninitialize();



Early Binding



使用早期绑定在VC++应用程式中打印 条码 比晚期绑定的代码运行效率更高.

1. 输入类库文件。不要忘记在调用COM 接口前先调用 CoInitialize().

2. 如果你想调用 T2OLE 宏来转换 LPTSTR 到 LPOLESTR, 你需要先调用 USES_CONVERSION 宏.

3. 你可以调用各种不同的编码方法,但是需要不同的字体来产生条形码.
#include <atlbase.h>
#include <atlconv.h>

#import "cruflbcs.dll"
using namespace cruflBCS;

USES_CONVERSION;
CoInitialize(NULL);
_bstr_t bstrOutput;
char pszToEncode[] = "..."; // <==put your data here
try
{
cruflBCS::ILinearPtr pBCSLinear(__uuidof(cruflBCS::CLinear));
bstrOutput = pBCSLinear->UCCEAN128(pszToEncode);
}
catch (const _com_error& e)
{
_tprintf(_T("Error: 0x%08x %s\n"), e.Error(), e.ErrorMessage());
}
CoUninitialize();


barcode VC++ MFC Wrapper class



如果你使用 VC++ 6 来产生 条形码 , 按 Ctrl + W 来启动 Class Wizard. 然后点击 "Add Class" 按钮, 选择 "From a type library".
然后选择 crUFLBCS.dll, 再选择所有需要保证的借口并且按 OK按钮.

如果你使用 Visual Studio 2003 或者以上版本来产生 条形码 ,
1. 从菜单 Project, 选择 Add Class.
2. 从模板列表中选择MFC Class from Typelib.
3. 从 Add Class from, 选择Registry.
4. 从所有可用的类库中找到 crUFLBCS.
5. 从类库所有的接口中选择所有你需要包装的.
6. 点击 Finish.

在使用以下代码产生 条形码的时候, 请不要忘记首先调用OleInitialize(NULL)。
CString strOutput;
IBarcode *pBarcodeObj = new ILinear();
if ( pBarcodeObj->CreateDispatch("cruflbcs.Linear.1")
strOutput = pBarcodeObj->UCCEAN128("...");