vc編譯靜態庫
A. 如何判斷一個VC++編譯的靜態庫是x64編譯的還是x86編譯的呢
使用mpbin程序,根據輸出結果可以判斷出來。例如:
mpbin /headers cv210.dll
You're looking at PE and 32BIT specifically.
Any CPU:
PE: PE32
32BIT: 0
x86:
PE: PE32
32BIT: 1
x64:
PE: PE32+
32BIT: 0
B. 求vc6.0下 openssl 已編譯好的靜態庫
載入庫,然後就可以使用庫里導出的函數了.就像你include<stdio.h>一樣,就可以使用stdio庫里的函數了.載入庫的方法有很多,你可以查一下.
C. C 創建靜態庫鏈接.網問題,怎麼解決
(1)VC++6.0環境
第一步:NEW->Projects->Win32 Static Library
第二步:編寫頭文件和.cpp源文件。
第三步:將頭文件和.cpp源文件添加到剛才新建的工程中。如果你用的是VC6.0可能會下面的問題。(對於這個問題,下面會有一篇文章來解決。文章地址:
VRQNWV0C5($Z$$Y[EIZL_Z4
第四步:編譯、鏈接就可以生成一個後綴為.lib文件。也就是說靜態庫就生成好了。
(2)DEV C++環境
第一步:NEW->Project->Static Library
第二步:編寫頭文件和.cpp源文件。
第三步:將頭文件和.cpp源文件添加到剛才新建的工程中。
第四步:編譯、鏈接就可以生成一個後綴為.a文件。(應為DEV C++是基於GCC的,所以生成的靜態庫文件是以.a結尾的。)
小結:其實創建靜態庫的過程,都是類似的。
如何使用靜態庫?
(1)在VC6.0和DEV C++中通用的方法(對於後綴是.lib文件):
使用預編譯語句。如:#pragma comment(lib, "庫文件名")
並且要將頭文件在程序的開始出聲明。
例子:
#include #include #include "Max_Value.h" #pragma comment(lib, "Max_Value.lib")
using namespace std;
int main(int argc, char *argv[]) { int a[3]={2,3,4}; int i; printf("hello! "); i=Find_max(a,3); printf("%d ",i); system("PAUSE"); return 0; }
庫文件在最後貼出來。
(2)在dev C++ 中使用.a靜態庫文件
首先要創建一個工程,然後Project->Project Options->Parameters,點擊Add library or Object,選擇你要使用的那個庫文件。這個時候就隨便你什麼後綴的庫文件了。
庫文件具體的源代碼如下:
//Max_Value.h
#ifndef _MAX_VALUE_H #define _MAX_VALUE_H int Find_max(int *a, int n); #endif
//Max_Value.cpp
int Find_max(int *a ,int n ) { int max; int i; max=a[0]; for(i=1;i if(a[i]>max) max=a[i]; } return max; }