A. VC在沒有.lib文件下怎麼調用DLL
知道DLL文斗團件內的函數名稱就瞎銷搜可以磨歷調用了,例如Declare Sub LED_Startup Lib "LEDSender.dll" ()
Declare Sub LED_Cleanup Lib "LEDSender.dll" ()
Declare Function LED_Open Lib "LEDSender.dll" (param As TDeviceParam, ByVal Notify As Long, ByVal Window As Long, ByVal Message As Long) As Long
Declare Sub LED_Close Lib "LEDSender.dll" (ByVal dev As Long)
B. 為什麼我的動態鏈接庫在VC6.0下編譯完了沒有在Debug中找到lib文件,但是dll文件都在
那要看你選擇的是動態編譯還是靜態編譯了,還有就是注意輸出的位置...
C. c語言編譯時缺少tv.lib怎麼辦
C語言編程.lib文件是庫文件。可以理解成是把一包.c和.h文件打包做成的一個庫。
缺少庫文件有兩個解決辦法:1.找到.lib文件放入對應位置,例如keil5工程中的user文件夾。2.去掉引用,即注釋掉庫內頭文件的引用,不使用此庫,此時如果有函數等顯示為定義,說明是庫中的函數,替換或重新定義該函數。
D. 為什麼devc++文件里沒有lib32
我在windows xp下使用Dev-c++構建一個socket應用,我使用
#include <winsock.h> 或 #include <winsock2.h> 都會出現下面的大片錯誤:
[Linker error] undefined reference to `WSACleanup@0'
[Linker error] undefined reference to `WSAStartup@8'
...
我在Project -> Project Options -> parameter -> linker 輸入框內輸入:
ws2_32.lib
結果出現了下面的錯誤信息:
[Build Error] [socketObject.exe] Error 1
我查了Compile Log得到的關鍵log信息是:
g++.exe: ws2_32.lib: No such file or directory
原來是找不到 ws2_32.lib,我檢查了一下C:\Dev-Cpp\lib\下的庫文件,發現根本就
沒有ws2_32.lib這個文件。
於是上網搜了一下,有網友說對於Dev-c++應該是libws2_32.a
天,
原來是這個文件。
我很高興的將這個lib文件加到linker中,興奮地去編譯,結果仍然是:
g++.exe: libws2_32.a: No such file or directory
草,真是氣人。
我接著點擊 linker 區域下方的一個按鈕:Add Library or Object
用這個方法將libws2_32.a添加到linker: C:/Dev-Cpp/lib/libws2_32.a
這次編譯竟然順利通過了。
我將這次的遇到的問題及其解決過程記錄下來,希望對其他的朋友有幫助。
也在此謝謝其他團培亂朋友對我的指點。
在網上搜到的相關信息我也羅列到下面:
在工程里已經#include <winsock2.h>了結果還是報錯,郁悶死了,我用的是Dev-C++,起先還以為是IDE的問題,結果換成VC6.0還是同樣的錯誤。最後在網上終於找到問題的原因,很快搞定了。順便做一下筆記,以防以後再出現這種問題。
VC6.0下的錯誤信息:
error LNK2001: unresolved external symbol __imp__socket@12
error LNK2001: unresolved external symbol __imp__WSAStartup@8
Dev-C++下的錯誤信息:
[Linker error] undefined reference to `WSAStartup@8'
[Linker error] undefined reference to `socket@12'
錯誤原因:因為沒有聯接socket庫ws2_32.lib。
解決辦法:對於VC6.0要在porject/settings的link頁面中object/library moles中添ws2_32.lib就可以了;塌檔對於Dev-C++同樣在工程/工程屬性的參數頁面中連接器那一欄中添加庫,這時必須找到庫文件的目錄,對於Dev-C++的對應庫文件是libws2_32.a,在軟體安裝下lib文件夾中可以找到相應的庫文件。
總結:所有中帆運用到WinSock2的程序在編譯連接時都要用的該庫
原文鏈接:https://www.cnblogs.com/vilyLei/articles/1812634.html
E. 用了英文版的VC++6.0怎麼編譯後運行時提示找不到文件
可能很多人在安裝VC 6.0後有過點擊「Compile」或者「Build」後被出現的
「Compiling... ,Error spawning cl.exe」錯誤提示給郁悶過。很多人的
選擇是重裝,實際上這個問題很多情況下是由於路徑設置的問題引起的,
「CL.exe」是VC使用真正的編譯器(編譯程序),其路徑在「VC根目錄\VC98\Bin」下面,
你可以到相應的路徑下找到這個應用程序。
因此問題可以按照以下方法解決:打開vc界面 點擊VC「TOOLS(工具)」—>「Option(選擇)」
—>「Directories(目錄)」重新設置「Excutable Fils、Include Files、
Library Files、Source Files」的路徑。很多情況可能就一個盤符的不同
(例如你的VC裝在C,但是這些路徑全部在D),改過來就OK了。
如果你是按照初始路徑安裝vc6.0的,路徑應為:
executatble files:
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin
C:\Program Files\Microsoft Visual Studio\VC98\BIN
C:\Program Files\Microsoft Visual Studio\Common\TOOLS
C:\Program Files\Microsoft Visual Studio\Common\TOOLS\WINNT
include files:
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
library files:
C:\Program Files\Microsoft Visual Studio\VC98\LIB
C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB
source files:
C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC
如果你裝在其他盤里,則仿照其路徑變通就行(我就是裝在D盤)。
關鍵是microsoft visual studio\ 後面的東西要相同。
本人深受其害,重裝多次不管用,上面中文部分為高手借鑒,終於弄好了。還有,一定要設置好環境變數
F. lib文件是什麼是不是編譯自動生成我不加lib文件運行不了
lib文件是靜態庫,這種文件中有頭文件中聲明的函數的實現代碼,一般用在靜態連編上,編譯鏈接時,將lib文件與其他模塊編譯生成的目標代碼鏈接,從而形成能夠運行的可執行文件。
#pragma comment(lib, "pcc32_vc6.lib")就是連入一個庫文件,表示鏈接pcc32_vc6.lib這個靜態庫文件來生成可執行文件。
G. VC6.0怎麼添加,lib文件
①LIB文件直接加入到工程文件列表中
在VC中打開FileView一頁,選中工程名,單擊滑鼠右鍵,然後選中"AddFilestoProject"菜單,在彈出的文件對話框中選中要加入DLL的LIB文件即可。
②設置工程的ProjectSettings來載入DLL的LIB文件
打開工程的ProjectSettings菜單,選中Link,然後在Object/librarymoles下則叢的文本框中輸入DLL的LIB文件。
③通過程序代碼的方式
加入預編譯指令#pragmacomment(lib,"*.lib"),這種方法優點是可以利用條件預編譯指令鏈接不同版本的LIB文件。因為,在Debug方式下,產生的LIB文件是Debug版本,如Regd.lib;在Release方式下,產生的LIB文件是Release版本,如Regr.lib。
當應用程序對DLL的LIB文件載入後,還需要把DLL對應的迅純頭文件(*.h)包含到其中,在這個頭文件中給出了DLL中定孫昌櫻義的函數原型,然後聲明。