`

【C++】PEXOPRTS 不工作了

阅读更多
迁移Posix下的一些工具常常需要用到MingW和VC++一起工作,这时候PEXPORTS就帮上大忙了:我们可以先用MinGW编译出dll,然后用PEXPORTS导出def文件,最后用VC++的LIB命令创建新的lib文件,VC++程序就可以无缝地调用MingW的dll。

迁移到win7 64bit之后,原来的PEXPORTS 0.4.3总是会莫名其秒Crash掉,打上补丁也没效果,将它编译成64bit也照样出错,求人不如求自己,写了一个简单的dos batch,就来代替原来的PEXOPRTS。

下一步可以增加修改修饰名的功能

@echo off
if "%1"=="" goto :USAGE
:CHECK

where dumpbin.exe >nul
if %ERRORLEVEL% EQU 1 goto :FAILURE_1
dumpbin.exe /EXPORTS %1 > tmp 2>nul
echo LIBRARY %~n1 >%~n1.def
echo. >>%~n1.def
echo EXPORTS >> %~n1.def
SET no=1
SETLOCAL ENABLEDELAYEDEXPANSION
for /F "skip=19 tokens=3*" %%i in (tmp) do (
echo %%j @!no! >>%~n1.def
SET /A no=!no!+1
)
endlocal 

if "%2"=="" goto :END
where lib.exe >nul
if %ERRORLEVEL% EQU 1 goto :FAILURE_2
lib /def:%~n1.def /machine:%2
goto :END

:USAGE
echo pexport <dll file> [x86|x64]
echo create import library from Dll  --- Ray Linn
goto :END

:FAILURE_1
echo Can not find the dumpbin.exe in your path.
goto :END

:FAILURE_2
echo Can not find the lib.exe in your path.
goto :END

:END
del tmp


这下就简单多了,使用的时候可以只要def文件 :
pexport xxx.dll

也可以直接创建最后的import library
pexport xxx.dll x64


图中用VC++编译libarchive里,就调用了mingw64编译的xz模块。

  • 大小: 60 KB
分享到:
评论

相关推荐

    c++狼人杀 c++狼人杀

    c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀c++狼人杀...

    C++C++C++C++C++C++C++

    C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++

    c++小游戏 c++小游戏

    c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏c++小游戏...

    C++编程实例100篇

    模板是C++的一个高级特性,允许创建泛型代码,即可以在多种数据类型上工作的函数或类。模板可以提高代码的通用性,减少重复工作。 异常处理是处理程序运行时错误的方式,通过try、catch和throw关键字,可以捕获并...

    Effective Modern C++:改善C++11和C++14的42个具体做法(中文版 + 英文版)

    《Effective Modern C++:改善C++11和C++14的42个具体做法(影印版)(英文版)》中包括以下主题:剖析花括号初始化、noexcept规范、完美转发、智能指针make函数的优缺点;讲解std∷move,std∷forward,rvalue引用和...

    华为c++编码规范&c/c++安全编码规范

    华为c++编码规范和安全编码规范最新3.1版本 华为c++编码规范和安全编码规范最新3.1版本 华为c++编码规范和安全编码规范最新3.1版本 华为c++编码规范和安全编码规范最新3.1版本 华为c++编码规范和安全编码规范最新3.1...

    Dev C++ 6.3安装包,DevC++智能开发平台

    Dev C++是一款轻量级的C++集成开发环境(IDE),专为初学者和专业开发者提供简洁、高效的编程环境。这个6.3版本是其历史上的一个重要里程碑,它结合了GCC编译器(GNU Compiler Collection)和一个用户友好的界面,...

    21天学通C++(第五版) vs2008程序打包 深入浅出MFC 浙大教材C++达内 C++ 华为C++培训资料 visual c++_MFC

    21天学通C++(第五版) vs2008程序打包 深入浅出MFC 浙大教材C++达内 C++ 华为C++培训资料 visual c++_MFC 资源内容: visual c++_MFC 达内 C++ C++课件.ppt c++源码 .rar Core C++ Programming_new.ppt Core C++ ...

    c++builder6安装包

    6. **PL/0编译器**:虽然标签中提到了PL/0编译器,但C++Builder 6本身并不包含这个编译器。PL/0是一种教学用的简单编程语言,通常与Pascal或Ada的教科书一起使用。如果在安装包中包含了PL/0编译器,那可能是因为它...

    c++ 通讯录 c++c++ 通讯录

    c++c++ 通讯录 c++c++ 通讯录 c++c+c++c++ 通讯录 + 通讯录 c++c++ 通讯录 c++c++ c++c++ 通讯录 通讯录 c++c++ 通讯录 c++c++c++c++ 通讯录 通讯录 c++c++ 通讯录 c++c+c++c++ 通讯录 + 通讯录 c++c++ 通讯录

    Advanced.C++.Programming.Styles.and.Idioms (Advanced C++中文版)

    同时,还探讨了C++中不那么直接支持的核心概念,例如虚拟构造函数、原型对象、高级垃圾收集技术等。 本书的要点包括:展示使用C++高级技术的好处和潜在缺陷、通过精炼的例子说明如何有效组合C++的抽象机制、提供从...

    C++面试八股文深度总结

    C++是一种强大的编程语言,它在C语言的基础上引入了面向对象的特性,使得程序...了解并掌握这些知识点对于C++开发者来说至关重要,无论是面试还是实际工作,它们都能帮助我们写出更高效、更安全、更具可维护性的代码。

    实用C++的CHM集合

    这个文件可能详细介绍了如何在C++中使用API调用来实现各种功能,如文件操作、窗口管理、设备驱动等,对于开发Windows原生应用必不可少。 6. **Visual C++ MFC入门教程.chm**:这是针对初学者的MFC教程,可能会包含...

    c++各种小游戏(我们老师的)

    这包括但不限于游戏逻辑设计、对象编程、图形用户界面(GUI)处理、数据结构和算法的应用等方面。通过研究这些小游戏的代码,学习者可以了解到如何在C++环境中创建交互式程序,提升编程技能。 【压缩包子文件的文件...

    从java到c++,适合java程序员快速学习c++

    C++ 字符串是可以被修改的,而 Java 字符串的内容是不可修改的。 3. 取子字符串的操作在 C++ 中叫做 substr。 4. 在 C++ 中,你只能够将字符串与其它字符串对象相串联,而不能够与任意的对象相串联。 5. C++ 中...

    C++并发编程实践 C++ Concurrency in Action

    ### C++并发编程实践 #### 一、简介与并发编程基础 《C++并发编程实践》这本书由Anthony Williams编写,是一本深入讲解C++多线程编程技术的专业书籍。本书旨在帮助读者掌握C++中的并发编程技巧,并通过大量的示例...

    C++ api中文参考手册

    5. **C++基础知识**:尽管标题中提到“不全”,但“c++基础知识 不全.chm”文件可能包含了C++基础概念的简要介绍,对于初学者来说是一个不错的起点,可以快速了解C++的基本构造和用法。 总的来说,C++ API中文参考...

    DevC++6.0 C/C++开发工具

    DevC++ 6.0 是一个轻量级的C/C++集成开发环境(IDE),尤其适合初学者入门学习这两种编程语言。它集成了编译器、调试器和其他必要的工具,为用户提供了便捷的代码编写、编译、调试一站式体验。 在C++编程中,DevC++...

    c++builder控件大全

    利用C++Builder的RAD特性,开发者可以减少编码工作量,将更多的精力投入到程序设计和创新上。 书籍《C++Builder控件大全》在2002年由电子工业出版社出版发行,编者为陈战林、张万里、耿宏运等人。这本书的出版,...

Global site tag (gtag.js) - Google Analytics