本例是在VS2008中調試通過:
1.新建一個WIN32項目,名字爲slib,在WIN32應用程序嚮導中,選擇靜態庫
2.新建兩個文件lib.h lib.cpp
//文件:lib.h
#ifndef _LIB_H_
#define _LIB_H_
/*************************************************
請注意函數定義前的關鍵字extern "C",這是由於我們使用了C++語言來開發DLL,爲了使C語言模塊能夠訪問該導出函數,我們應該使用C鏈接來代替C++鏈接。否則,C++編譯器將使用C++的類型安全命名和調用協議,這在使用C調用該函數時就會遇上問題。在本例中並不需要考慮到這個問題,因爲我們在開發DLL和應用程序時都是使用C ++,但我們仍然強烈建議使用extern "C",以保證在使用C編寫的程序調用該DLL的導出函數不會遇上麻煩。
********************************************************************************************/
extern "C" int add(int x,int y);
#endif
//文件:lib.cpp
#include "lib.h"
int add(int x,int y)
{
return x + y;
}
3,生成lib.lib.
4,然後在原工程中,選擇解決方案,右鍵-->新建項目,.新建一個WIN32項目,名字爲Test,在WIN32應用程序嚮導中,選擇WIN32應用程序,
5,在拷貝文件lib.h和lib.lib到test/test目錄下,在解決方案管理器中,選擇“顯示所有文件”,將lib.h包括在Test項目中.
6.在test.cpp文件中添加#include "lib.h",#pragma comment(lib,"lib.lib")
7.測試例子:
int temp=0;
temp=add(10,5);
WCHAR schar[50];
swprintf(schar,L"%d",temp);
MessageBox(NULL, schar,L"Result",MB_OK);
最終結果顯示;15