欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

VS2010下生成dll的方法

 更新時間:2018年01月30日 21:35:11   投稿:mdxy-dxy  
這篇文章主要介紹了VS2010下生成dll的方法,需要的朋友可以參考下

1.首先創(chuàng)建生成dll的項目:打開VS2010,兩種途經(jīng)建立dll項目,基于MFC DLL的和基于Win32控制臺應(yīng)用程序的,這里選擇基于Win32控制臺建立。

a.文件--新建--項目(項目命名為myAPI)--Visual C++ --Win32--選擇Win32控制臺應(yīng)用程序;
b.接下來下一步一直到如下圖,程序類型選擇DLL,如無特殊需要選擇空項目完成,項目建立完畢;

2.定義頭文件:為項目添加頭文件myAPI.h 內(nèi)部添加如下代碼,

#ifndef _DLL_API 
#define _DLL_API _declspec(dllexport) 
#else 
#define _DLL_API _declspec(dllimport) 
#endif 
 
_DLL_API int ADD(int a,int b); 

內(nèi)部定義一個ADD()函數(shù)接口,如需添加其他函數(shù)接口,可以接著繼續(xù)定義,如

_DLL_API int MINUS(int a,int b); 
_DLL_API int otherfunc(int,int,int); 

3.定義源文件:為項目添加相應(yīng)的源文件myAPI.cpp 之后便是在該源文件中對函數(shù)進行定義,內(nèi)部添加如下代碼,

#include "myAPI.h" 
 
int ADD(int a,int b){ 
  return a+b; 
}

4.編譯至通過,生成dll:這里有個小建議,因為dll項目不會生成exe,無法實時測試API,所以建議先在一般空項目內(nèi)調(diào)試并測試通過API的函數(shù)體代碼,然后再建立dll項目直接編譯通過,這樣更方便可靠。 回到正題,dll項目編譯通過后有用的就是myAPI.h頭文件以及Debug目錄下新生成的myAPI.dll 和myAPI.lib文件,

5.調(diào)用dll:為了測試我們剛剛生成的dll,創(chuàng)建新的項目mytest。包含聲明myAPI.h頭文件,這里存放了定義的接口。將myAPI.dll文件放入新工程Debug文件夾下(.exe執(zhí)行時需要調(diào)用,新項目如未編譯則沒有Debug文件夾,待編譯后有了該文件夾再將dll文件放入)。將myAPI.lib文件放在與源文件及頭文件相同路徑下(編譯時需要),接下來需要將.lib資源添加到項目中,兩種方法。
一種方法是,在項目屬性-鏈接器-輸入中“附加依賴項”加入myAPI.lib文件(當(dāng)然,有過未設(shè)置此處亦編譯成功的經(jīng)歷,但不建議);
另一種調(diào)用方法是在新項目主程序中添加如下命令 則無需設(shè)置依賴項;

#pragma comment(lib,"myAPI.lib") 

至此,全部完成任務(wù),編譯通過后正常使用你自己定義的API了~

VS2010中使用CL快速 生成DLL的方法

方案一:
1、命令行中輸入cl example.cpp,生成example.obj和example.lib文件。有可能還會提示“沒有入口點”的錯誤。這是因為我們的CPP中是要生成dll文件的,并沒有main()這樣的主函數(shù)作為入口點。如果是C文件,則輸入cl /c example.cpp

2、命令行中輸入cl /def:example.def /dll:example.obj

方案二:

命令行中輸入 cl /LD example.cpp example.def,直接生成example.dll(名字會因在def中定義的不同而有所不同)文件。有可能會提示(warning LNK4070: .EXP 中的 /OUT:example.dll 指令與輸出文件名“example.exe”不同;忽略指令),這時生成的可能是example.exe文件。只要將example.exe改成example.dll就可以了,或者直接在加載dll的函數(shù)中加載example.exe.

注意:/LD一定要大寫,不能寫成/ld,這里可折騰了我快一天了才找出來的原因。

vs2010 問題 >LINK : fatal error LNK1123: 轉(zhuǎn)換到 COFF 期間失敗: 文件無效或損壞

>LINK : fatal error LNK1123: 轉(zhuǎn)換到 COFF 期間失敗: 文件無效或損壞

問題說明:當(dāng)安裝VS2012之后,原來的.NET 4.0會被替換為.NET 4.5。卸載VS2012時,不會恢復(fù).NET 4.0。

l 當(dāng)VS2012安裝后,VS2010的cvtres.exe就無法使用了。如果你的PATH環(huán)境變量中VS2010的工具路徑第一個出現(xiàn),而且鏈接器需要將.res文件轉(zhuǎn)換為COFF 對象格式,就會導(dǎo)致LNK1123錯誤。
l 當(dāng)VS生成PE文件頭時,使用的cvtres.exe版本錯誤,不能與當(dāng)前的.NET平臺兼容。
解決方案:

參考:

http://stackoverflow.com/questions/10888391/link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-invalid-or-c

因為是cvtres.exe版本錯誤導(dǎo)致的結(jié)果,所以凡是能使VS鏈接器找到正確的cvtres.exe版本的方法都可以解決該問題?;蛘呤筕S鏈接器不生成COFF的方法都可以。

【方法一】
當(dāng)前系統(tǒng)中存在兩個cvtres.exe文件,版本不同。讓VS2010使用.NET 4.5的cvtres.exe程序。

具體步驟:

重命名或刪除:(vs2010安裝的位置)C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe

這樣C:\Windows\Microsoft.NET\Framework\v4.0.30319 (.NET 4.5)中的cvtres.exe文件就可以被VS2010使用。

【方法二】
解決方法如下:
項目\屬性\配置屬性\清單工具\輸入和輸出\嵌入清單:原來是“是”,改成“否”。

說明:這種方法每個工程均需要修改配置。

【方法三】
安裝:VS2010 SP1. 該版本應(yīng)該是能使用.NET 4.5的,并配有正確的cvtres.exe版本。

注意:安裝VS 2010 SP1 時會移除64-bit 編譯器. 通過安裝 VS 2010 SP1 compiler pack 能夠重新獲得。

【方法四】
卸載.NET 4.5,重裝.NET 4.0

相關(guān)文章

  • c#使用S22.Imap收劍靈激活碼郵件代碼示例(imap收郵件)

    c#使用S22.Imap收劍靈激活碼郵件代碼示例(imap收郵件)

    一個IMAP收發(fā)郵件的類庫S22.IMAP,方便易用,下面來個例子可以收劍靈激活碼郵件
    2013-12-12
  • C# GroupBy的基本使用教程

    C# GroupBy的基本使用教程

    這篇文章主要給大家介紹了關(guān)于C# GroupBy的基本使用教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • C#的內(nèi)存回收代碼

    C#的內(nèi)存回收代碼

    這篇文章主要介紹了C#的內(nèi)存回收代碼,涉及到win32底層操作,具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2014-10-10
  • c# 控件截圖的簡單實例

    c# 控件截圖的簡單實例

    這篇文章介紹了c# 控件截圖的簡單實例,有需要的朋友可以參考一下
    2013-10-10
  • C# MJPEG 客戶端簡單實現(xiàn)方法

    C# MJPEG 客戶端簡單實現(xiàn)方法

    這篇文章主要介紹了C# MJPEG 客戶端簡單實現(xiàn)的方法,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#自定義的字符串操作增強類實例

    C#自定義的字符串操作增強類實例

    這篇文章主要介紹了C#自定義的字符串操作增強類,涉及C#操作字符串實現(xiàn)分割、轉(zhuǎn)換、去重等常用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • C#實現(xiàn)ListView選中項向上或向下移動的方法

    C#實現(xiàn)ListView選中項向上或向下移動的方法

    這篇文章主要介紹了C#實現(xiàn)ListView選中項向上或向下移動的方法,通過兩個按鈕點擊事件實現(xiàn)ListView選中項的上下移動功能,需要的朋友可以參考下
    2015-06-06
  • C#畫圖之餅圖折線圖的實現(xiàn)方法

    C#畫圖之餅圖折線圖的實現(xiàn)方法

    這篇文章主要介紹了C#畫圖之餅圖折線圖的實現(xiàn)方法,以實例形式講述了C#畫圖的完整實現(xiàn)過程,是非常實用的技巧,有不錯的借鑒價值,需要的朋友可以參考下
    2014-09-09
  • 深入解析C#中的命名實參和可選實參

    深入解析C#中的命名實參和可選實參

    這篇文章主要介紹了C#中的命名實參和可選實參,在COM接口相關(guān)的開發(fā)中經(jīng)??梢杂玫?需要的朋友可以參考下
    2016-01-01
  • Winform 實現(xiàn)進度條彈窗和任務(wù)控制

    Winform 實現(xiàn)進度條彈窗和任務(wù)控制

    這篇文章主要介紹了Winform 實現(xiàn)進度條彈窗和任務(wù)控制的方法,幫助大家更好的利用c# winform進行開發(fā),感興趣的朋友可以了解下
    2020-12-12

最新評論