我想知道是否有可能在某些库中创建一个入口点(main或winmain)。我正在尝试编写一个窗口管理器代码,我想在一个库中使用main函数,其中特定于应用程序的文件只定义了一些winmain调用的外部函数(例如extern render()或extern refresh())
我试图自己做这个,但是我收到的错误是没有定义入口点。
答案 0 :(得分:0)
您可以使用项目中的Module-Definition file指定DLL中的导出。
答案 1 :(得分:0)
我只是花了最近几天试图为自己找出这个并且很幸运。
注意我只针对静态库(.lib)
尝试了这个.lib文件的用途是,如果调用库的函数,它们只会被使用并连接到您的项目。 现在最小项目的问题是你只有一个主要功能。 但是你的项目没有调用它,那么它与它有什么联系呢?
我的解决方案,可能不那么优雅,但它对我有用: 创建一个LibConnection.h,其中包含lib.h并从lib.cpp中调用一个虚函数。 在我看来,不好的部分是你必须将lib.h和Connectionlib.h包含在项目文件中。
像这样://Lib.h
void ConnectionFunction();
//Lib.cpp
int main(int argc, char* argv[])
{
//do some stuff
}
//This function doesn't do anything but it is important
//that you define it in your lib.h and declare it in your lib.cpp
void ConnectionFunction()
{
}
现在您有一个基本库,必须创建一个连接文件 像这样:
//LibConnection.h
#include "Lib.h"
//now we call the connectionfunction
//remember non of this get really called but it makes possible connecting with your
//almost empty library
void Dummy()
{
ConnectionFunction();
}
然后在你的空项目中:
//testapp.cpp
#include "LibConnection.h"
//remember to include the lib.h and the libconnection.h into your project files
void Foo()
{
//this function doesn't get called but your project is running!
}
希望这会有所帮助:)