我使用Visual Studio 2012和我creared dll而不使用MFC,它生成的DLL。但是,當我使用指定下列選項生成特定目錄下的庫文件: - 去proeperties頁面級 - >高級 - >導入庫 ../../../lib/myapp.lib動態庫不生成使用Visual Studio 2012的lib文件2012
它不是在指定的文件夾中生成lib文件。請幫幫我 。
感謝&問候 維卡斯
我使用Visual Studio 2012和我creared dll而不使用MFC,它生成的DLL。但是,當我使用指定下列選項生成特定目錄下的庫文件: - 去proeperties頁面級 - >高級 - >導入庫 ../../../lib/myapp.lib動態庫不生成使用Visual Studio 2012的lib文件2012
它不是在指定的文件夾中生成lib文件。請幫幫我 。
感謝&問候 維卡斯
請參閱以下內容:你可能需要聲明/出口(http://msdn.microsoft.com/en-us/library/7k30y2k5.aspx)
http://msdn.microsoft.com/en-us/library/67wc07b9.aspx請參閱 「備註」
只是解決了類似的問題。 Visual Studio不創建.lib文件,而不指示要在dll中公開哪些對象。您需要創建一個雙贏的出口頭是這樣的:
#ifndef BLABLABLA
#define BLABLABLA
#ifdef MYAPPLIB_EXPORTS
#define MYAPPLIB_API __declspec(dllexport)
#elif defined(MYAPPLIB_EXPORTS_STATIC)
#define MYAPPLIB_API
#else
#define MYAPPLIB_API __declspec(dllimport)
#endif
#endif // !BLABLABLA
然後,你需要聲明MYAPPLIB_EXPORTS作爲預處理宏。包括在其他API頭這個新的頭文件,您要您的API中暴露每一個類或方法後,您可以添加MYAPPLIB_API自己的聲明,如:
class MYAPPLIB_API MyClass{ ... };
calculatelibrary.h
/* 默認情況下, DLL的New Project模板將PROJECTNAME_EXPORTS添加到DLL項目的已定義的預處理器符號中。 在此示例中,CALCULATELIBRARY_EXPORTS是在您構建calculateLibrary DLL項目時定義的。 定義了CALCULATELIBRARY_EXPORTS符號時,CALCULATELIBRARY_API符號在此代碼的成員函數聲明中設置__declspec(dllexport)修飾符。 該修飾符告訴編譯器和鏈接器從DLL中導出函數或變量,以便其他應用程序可以使用它。 當CALCULATELIBRARY_EXPORTS未定義時 - 例如,客戶端應用程序包含頭文件時 - CALCULATELIBRARY_API在成員函數聲明中定義__declspec(dllimport)修飾符。該修飾符可以優化應用程序中函數的導入。欲瞭解更多信息
*/
#ifndef _calculate_library_h
#define _calculate_library_h
#ifdef CALCULATELIBRARY_EXPORTS
#define CALCULATELIBRARY_API _declspec(dllexport)
#else
#define CALCULATELIBRARY_API _declspec(dllimport)
#endif
namespace calculatelibrary
{
class CALCULATELIBRARY_API clsCalculateLibrary{
// Returns a + b
double Add(double a, double b);
};
}
#endif _calculate_library_h
// CalculateLibrary.cpp : Defines the exported functions for the DLL application.
//
#include "stdafx.h"
#include "CalculateLibrary.h"
namespace calculatelibrary
{
double clsCalculateLibrary::Add(double a, double b)
{
return a + b;
}
}