【发布时间】:2012-09-16 21:44:59
【问题描述】:
我正在尝试将Win32::Setupsup 移植到Strawberry Perl 和它使用的MinGW GCC,这是一个相当老旧的基于C++ 的模块,旨在与Visual C++ 一起工作。除了一件事,我几乎可以让它工作。
模块的 C++ 部分有一个 DllMain 函数,它在 DLL_PROCESS_ATTACH 运行一些初始化代码,在 DLL_PROCESS_DETACH 运行清理代码。当我用 Visual C++ 编译模块时,效果很好。但是当我用 Strawberry Perl 使用的 MinGW GCC 编译它时,DllMain 永远不会被调用。
我认为问题只是在使用gcc 编译时,DllMain 未被正确识别为 DLL 的入口点。但我不知道如何解决。
正在进行的工作在my GitHub repo for Win32::Setupsup。虽然我使用Dist::Zilla 来管理发布,但您实际上并不需要dzil 来测试它。只需克隆 repo、perl Makefile.PL 和 dmake test。
【问题讨论】:
-
extern "C"有帮助吗? -
@ephemient,做到了!而且它似乎也不打扰 Visual C++。把它写下来作为答案,我会接受的。
标签: windows perl mingw strawberry-perl