- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试移植 Win32::Setupsup ,一个相当老旧的基于 C++ 的模块,旨在与 Visual C++ 一起工作,到 Strawberry Perl 和它使用的 MinGW GCC。除了一件事,我几乎可以正常工作。
该模块的 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
来测试它。只需克隆存储库、perl Makefile.PL
和 dmake test
。
最佳答案
看看你的代码,你有
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD reason, LPVOID reserved);
在 C++ 源文件中。因为这是一个 C++ 函数,G++ 将名称打乱为类似 __Z7DllMainP11HINSTANCE__mPv@12
的名称,并且在加载库时找不到它。
要解决这个问题,请在函数声明中使用 extern "C"
extern "C"
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD reason, LPVOID reserved);
或在一个 block 中
extern "C" {
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD reason, LPVOID reserved);
}
确保函数被赋予 C 链接(避免 C++ 名称重整)。
关于windows - 为什么 Strawberry Perl 不调用我的 DllMain?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12450997/
我知道 Perl 5.10.0 可以使用 Strawberry Perl portable,但到目前为止,Perl 5.10.1 还没有。因此,我目前正在做一些让 Strawberry Perl 从网
基本上,我编写了一个 Perl 脚本,为 Powershell 创建一个编码命令并尝试运行它。在对其进行 base64 编码之前,我必须将命令字符串显式转换为 utf-16。我想知道为什么这就是我必须
我最近将我的客户端 64 位 ActivePerl 版本从 5.10.1.1007 版本升级到 5.22.2.2203,并且遇到了很多问题。 我真的更愿意跳到 Strawberry,但我必须先在我每天
我有一个 Strawberry Perl接受单个文件作为命令行参数的程序。我如何设置才能将所需文件拖放到 Strawberry Perl 程序(或其周围的包装器)上,然后程序以该文件名作为参数运行?
一位同事正在尝试使用 ack (一个 Perl 程序)在他的 Windows 机器上,在 Linux 下尝试过并决定他肯定要使用它。他设法得到了Strawberry Perl安装在他的机器上,但似乎无
直到现在我使用 ActiveState的 ActivePerl ,并使用 ppm 来安装模块。 上周我搬到了Strawberry Perl ,但我不知道应该如何使用 Strawberry Perl 安
我最近在运行 Windows 7 的 PC 上将 Strawberry Perl 从版本 5.14.1.1-32bit 升级到 5.24.0-64bit。我有一个在 Windows 和 Linux 下
怎么改@INC在 Strawberry Perl 中永久使用,无需更改我的脚本? 我知道 -I ,但不想每次都调用该开关。 最佳答案 要添加路径,请将环境变量 PERL5LIB 设置为这些路径。 注意
我有 Strawberry Perl并删除了 msys Perl 5.6。 现在perl将调用草莓(由于 PATH 环境),但我如何映射 perl .pl 中的命令或其他具有 #!/bin/perl
我有一个可移植 Strawberry Perl 版本 5.18.1.1,它有 OpenSSL 版本 1.0.1e,我想将它更新到 1.0.1g。有人可以帮忙吗?我应该怎么做才能将我的 Strawber
在安装 Net::Server 时,测试在 4/5 挂起,并且安装会阻塞,直到我发送中断信号。我试过谷歌搜索,但没能找到任何相关的东西。 我在 Windows XP 上使用 Strawberry Pe
因此,在 Strawberry Perl 中,%ENV 似乎是一个普通的散列(至少它没有绑定(bind)),但它似乎也不区分大小写地解析键。考虑到环境,这是有道理的变量在 PowerShell 中不区
标题几乎说明了一切。是否可以通过 perl 脚本(使用 strawberry perl)在 windows2003 中获取当前带宽使用情况? 最佳答案 我很少使用 Windows,目前无法访问 Win
我正在尝试移植 Win32::Setupsup ,一个相当老旧的基于 C++ 的模块,旨在与 Visual C++ 一起工作,到 Strawberry Perl 和它使用的 MinGW GCC。除了一
我正在尝试安装 DBD::Oracle在 Strawberry Perl 中使用 CPAN shell。我最初遇到错误,因为 Makefile找不到 OCI库,所以我从 Oracle 安装了即时客户端
Strawberry Perl是“用于 Windows 的开源 Perl,与就像 Perl 在其他地方一样”。Vanilla Perl“提供了尽可能接近 Perl 核心的 Perl 发行版。”Stra
我安装了 32 位版本的 Strawberry perl(5.14.2.1)。我能够运行 perl 命令。当我运行 cpan 时命令我收到以下错误: Can't locate App/Cpan.pm
也许有人可以帮助我理解。为什么会出现这个错误。我正在尝试构建使用 Inline::CPP 的 C++ 代码。 例子如下: #!/usr/bin/env perl package main v0.1.0
我们如何在 Strawberry GraphQL Resolver 中获取请求的字段 query{ test{ label } }``` How i can get label field
谁能告诉我如何从 Windows powershell 脚本 (.ps1) 调用 perl 脚本? 最佳答案 您只需使用 perl 可执行文件运行它: perl myscript.pl 关于straw
我是一名优秀的程序员,十分优秀!