對C++不怎么熟悉,有些暈。
感覺是pData1和pOut1形式不對?但我不知道怎么改,一直沒搞懂指標

第三方提供的barcode.dll檔案,def檔案是:
LIBRARY barcode
EXPORTS
encode @1
decode @2
我現在想呼叫這兩個函式,但總是出問題。UCHAR在對方提供的頭檔案里面就是unsigned char。
#include "pch.h"
#include <iostream>
#include <stdio.h>
#include "bar_cfg.h"
#include "bar_def.h"
#include "bar_err.h"
#include "bar_type.h"
#pragma comment(lib,"barcode.lib")
_declspec(dllimport) LONG decode(UCHAR* pData, UCHAR* pOut);
_declspec(dllimport) LONG encode(UCHAR* pData, UCHAR* pOut);
int main()
{
UCHAR pData1[28] = "12345678901234567890123456";
UCHAR pOut1[400] = "";
LONG rc = encode(pData1, pOut1);
std::cout << "Encode\n";
std::cout << pData1;
std::cout << "\n";
std::cout << pOut1;
std::cout << "\n";
}
編譯出錯資訊:
嚴重性 代碼 說明 專案 檔案 行 禁止顯示狀態
錯誤 LNK2019 無法決議的外部符號 "__declspec(dllimport) long __cdecl encode(unsigned char *,unsigned char *)" (__imp_?encode@@YAJPAE0@Z),該符號在函式 _main 中被參考 barcode_test C:\Document\Workspace\ykzx-barcode\barcode_test\barcode_test\barcode_test.obj 1
錯誤 LNK2019 無法決議的外部符號 "__declspec(dllimport) long __cdecl decode(unsigned char *,unsigned char *)" (__imp_?decode@@YAJPAE0@Z),該符號在函式 _main 中被參考 barcode_test C:\Document\Workspace\ykzx-barcode\barcode_test\barcode_test\barcode_test.obj 1
dumpbin.exe /exports barcode.dll
Dump of file barcode_test\barcode_test\barcode.dll
File Type: DLL
Section contains the following exports for barcode.dll
00000000 characteristics
FFFFFFFF time date stamp
0.00 version
1 ordinal base
2 number of functions
2 number of names
ordinal hint RVA name
2 0 000018D0 decode = _decode
1 1 00001950 encode = _encode
Summary
3000 .data
1D000 .rdata
5000 .reloc
1000 .rsrc
76000 .text
uj5u.com熱心網友回復:
因為你沒有生成barcode.lib命令列下執行:
lib /def:def檔案名 /out:輸出庫檔案名 /machine:x86或者x64對應32/64位intel架構
uj5u.com熱心網友回復:
這行不行嗎?
#pragma comment(lib,"barcode.lib")
uj5u.com熱心網友回復:
對方提供了barcode.lib,已經放在原始碼目錄,并添加到專案了。
uj5u.com熱心網友回復:
用lib命令重新生成了barcode.lib,還是一樣的錯誤。uj5u.com熱心網友回復:
_declspec(dllimport) LONG __cdecl decode(UCHAR* pData, UCHAR* pOut);_declspec(dllimport) LONG __cdecl encode(UCHAR* pData, UCHAR* pOut);
uj5u.com熱心網友回復:
還是一樣的錯誤
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/55015.html
標籤:新手樂園
下一篇:go筆記--json包使用
