在C++中如何调用静态链接库,以下是VS2005的例子。
1.新建一个vc的智能设备的win32智能设备项目,名字叫做vctestDll。
2.因为我使用的SDK是IMX35_CE6,所以我选择IMX35_CE6,按完成。
3.选择windows应用程序,按确定。
4.在这个项目例子里,我只是用一个按钮来打开驱动,并用一个对话框来显示成功与否。
5.将IoLib.lib,IoLib.h,IoLib.dll全部放入vctestDll的文件夹下,IoLib.lib,IoLib.h在编译的时候使用,oLib.dll在运行的时候使用接着点击项目->属性->配置属性->链接器->输入,在附加依赖项中加入IoLib.lib,
接着将IoLib.dll引入到项目中,并将IoLib.dll属性中的包含在项目中和内容设为true,这样在部署的时候,IoLib.dll就会被复制到项目文件夹下。
6.接着在vctestDll.cpp中加入#include "IoLib.h",具体实现代码如下。
// vctestDllDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "vctestDll.h"
#include "vctestDllDlg.h"
#include "IoLib.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CvctestDllDlg 对话框
CvctestDllDlg::CvctestDllDlg(CWnd* pParent /*=NULL*/)
: CDialog(CvctestDllDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CvctestDllDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CvctestDllDlg, CDialog)
#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
ON_WM_SIZE()
#endif
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_BUTTON1, &CvctestDllDlg::OnBnClickedButton1)
END_MESSAGE_MAP()
// CvctestDllDlg 消息处理程序
BOOL CvctestDllDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
void CvctestDllDlg::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
{
if (AfxIsDRAEnabled())
{
DRA::RelayoutDialog(
AfxGetResourceHandle(),
this->m_hWnd,
DRA::GetDisplayMode() != DRA::Portrait ?
MAKEINTRESOURCE(IDD_VCTESTDLL_DIALOG_WIDE) :
MAKEINTRESOURCE(IDD_VCTESTDLL_DIALOG));
}
}
#endif
void CvctestDllDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
BOOL flg = false;
IOL_Open();
UINT16 pinState=0;
flg = IOL_Read(1,&pinState);
MessageBox(TEXT("%d",pinState));
}
http://www.gdbaiyin.com/