C++ 从静态库中删除主函数
我的大部分代码依赖于.lib格式的专有Windows库(静态库)。让我们称之为prop.lib 该库的工作原理是,我创建了一个链接到prop.lib的新共享库。 然后,我可以通过prop.exe(另一个加载我的共享库并运行我的代码的程序)运行我的代码 我想创建一个独立运行的可执行文件,但由于prop.lib包含一个main函数,因此出现了链接器错误 是否有可能从库中删除main函数或创建另一个入口点 我使用VisualStudio2005C++ 从静态库中删除主函数,c++,windows,C++,Windows,我的大部分代码依赖于.lib格式的专有Windows库(静态库)。让我们称之为prop.lib 该库的工作原理是,我创建了一个链接到prop.lib的新共享库。 然后,我可以通过prop.exe(另一个加载我的共享库并运行我的代码的程序)运行我的代码 我想创建一个独立运行的可执行文件,但由于prop.lib包含一个main函数,因此出现了链接器错误 是否有可能从库中删除main函数或创建另一个入口点 我使用VisualStudio2005 编辑:到目前为止,我还没有prop.lib的源代码。您应
编辑:到目前为止,我还没有prop.lib的源代码。您应该意识到这是一项相当低级的任务
从对象文件的开头经过+8字节,读取4字节。它将偏移到具有“18字节结构和名称(如果所有名称都是8字节长)”的表中。编辑所需的名称,用零填充剩余的“名称”字节。我从来没有试过和科夫一起工作。我在网上找不到类似COFF编辑器的东西。您应该有两个构建目标:一个用于可执行文件,另一个用于库。main只应内置在可执行文件中,而不应内置在库中。@ChrisMaes前提是OP有一个选择生成目标的选项。如果这是他从客户/供应商处收到的数据包的一部分,他需要回到客户/供应商处,要求他们提供一个重定目标的静态libI。我正在使用eclipse,所以我只是推断:)用十六进制编辑器重命名符号?(不,不要真的这样做。)这不难,当然——只需搜索main并将其更改为mzin或其他什么。尽管如此,这似乎仍然是一个相当棘手的解决问题的方法。