`
yiyeqinghuasoon
  • 浏览: 658370 次
文章分类
社区版块
存档分类
最新评论

开发YXPack32.dll过程中的一些经验

 
阅读更多

先说一个福星,罗sir,只要和他废话一下,尽管谈一些没用的话,总会灵机一动得出有用的想法...

我用的是C语言(因为是标准Windows API函数输出,所以还是在Visual C++上写)

先是C的一些函数,比如创建空包裹时候写入一些空long值,应该是1024字节,后来多了16字节,函数是

fwrite(&lngBlank,4,4,f);

lngBlank 与源代码无关,只是做个比喻,第一个4就是sizeof(long),第二个4开始不明白,f是文件指针

后来跟罗sir废话一下,没什么结果,突然发现16是4的平方,于是把后面的4改为1,文件少了12字节,也就

是只多了4字节,再把for 循环的 1024 改为1020 也就是从1021开始写4字节(fseek定位)就Okay了

我想C中的读写过程是 根据文件指针f读写当前指针4字节数给变量lngBlank 指针下移4字节然后重复

4次,于是多写了个NULL和一个字符串变量的内容 - -

然后是对路径的判断,C中字符串都是正则表达式, / 是转义字符,所以路径要先转义,如:

"C:/Test.pkg "

要写成

"C://Test.pkg"

而函数输出API给其他语言调用,比如VB的路径是写成C:/Test.pkg,我的做法是根据字符串指针,如果遇

到'/'且后面一个字符不是'/'就加一个'/'给它,后来显示编译出现:

- newline constant (常量出现换行)

于是改为'//',编译通过,但是还是无法得到'/',得到一个乱码字符,甚至用'/'的ASCII - 92 来判断也不行,没

办法,找罗sir聊了下,他说没办法,除非你改C文件头的源代码,还是没结果,扛走了他一个显示器(天气潮湿,

我的显示器Over了),回来突然一闪念,测试一下得出结果是:

C在编译字符串的时候会把'/'后的一个字符转义,在内存中根本不存在'/'字符,而VB等语言会直接把'/'字符

的二进制数据写入内存,于是char * 变量从VB是可以直接用String变量传递过来的 - -

还有一些细节的东西是多试试就知道的,像fseek函数 0代表的位置等等,希望对遇到同样问题的人有帮助,

也希望以后这方面很熟练的同志能多帮帮某人...

分享到:
评论

相关推荐

    Delphi7 libeay32.dll,ssleay32.dll

    标题 "Delphi7 libeay32.dll,ssleay32.dll" 指的是在 Delphi 7 开发环境中使用 Indy SSL 组件时所需的两个关键动态链接库(DLL)文件:libeay32.dll 和 ssleay32.dll。这两个文件是 OpenSSL 库的组成部分,OpenSSL ...

    libeay32.dll和sslea32.dll

    libeay32.dll在软件开发中广泛用于数据保护、网络安全以及隐私保护等场景。 接着,ssleay32.dll则是OpenSSL的SSL/TLS协议实现库。SSL和TLS是互联网上保证通信安全的主要协议,用于在客户端和服务器之间建立加密的...

    libeay32.dll 、 ssleay32.dll动态链接库

    在Windows操作系统中,`libeay32.dll` 和 `ssleay32.dll` 是两个非常重要的动态链接库文件,它们是OpenSSL库的一部分。OpenSSL是一个强大的安全套接层(SSL)和传输层安全(TLS)协议实现,同时也包含了一些用于加密...

    opengl 库函数的dll GLut.dll,GLU32.dll,glut32.dll,OPENGL32.dll

    在开发过程中,开发者通常会使用像GLEW(OpenGL Extension Wrangler Library)这样的库来管理和加载额外的OpenGL扩展,或者使用现代的图形库如GLFW或SDL来替代GLUT,以获得更强大的窗口管理和用户输入处理功能。...

    收集的各种版本的libeay32.dll+ssleay32.dll总有一款适合你

    总而言之,libeay32.dll和ssleay32.dll是SSL/TLS通信的基础,它们在各种软件中起着关键作用。当遇到“Could not load ssl library”这类错误时,检查并确保使用正确版本和位宽的库文件是解决问题的关键。通过收集...

    ssleay32.dll、libeay32.dll windows64位动态库

    在本例中,我们关注的是`ssleay32.dll`和`libeay32.dll`这两个64位Windows动态库,它们在Delphi Indy框架中扮演着关键角色,尤其是当涉及到`IDHTTP`组件访问HTTPS协议时。 **1. Indy框架:** Indy(Internet Direct...

    libeay32.dll和ssleay32.dll.zip

    在IT行业中,当我们涉及到网络通信,尤其是安全的HTTP(HTTPS)连接时,`libeay32.dll`和`ssleay32.dll`是两个非常关键的动态链接库文件。这两个DLL文件与OpenSSL库紧密相关,OpenSSL是一个开源项目,提供了强大的...

    idhttp delphi xe10.3 需要的libeay32.dll 和 ssleay32.dll

    在IT行业中,网络通信安全是至关重要的一个环节,SSL(Secure Sockets Layer)网络协议及其后续版本TLS(Transport Layer Security)被...在开发过程中,正确地使用和配置这些组件对于构建安全的网络应用程序至关重要。

    【真正64位】libeay32.dll和ssleay32.dll

    完美解决MySQL安装过程中的各种缺少libeay32.dll和ssleay32.dll的问题!以及各种无法定位程序输入点于XXX的问题!在MySQL8.0.17上测试完美通过! 文件使用方法、具体放置位置请见文件内的说明。文件分数可能较高,...

    libeay32.dll,ssleay32.dll

    在Delphi2010中集成Indy10进行SSL/TLS开发时,需要将libeay32.dll和ssleay32.dll添加到系统的PATH环境变量中,或者将它们与编译出的可执行文件放在一起,以确保程序运行时能正确加载这些库。描述中的"绝对可用,已...

    各种版本libeay32.dll+ssleay32.dll大集合

    ,担资源分实在太多,一次性把所有分都用上了,但我觉得需要的都是比较紧急的情况,所以也就小分重上,给一些用DELPHI的老将们提供一点小小资源 :包中附含各种版本集合libeay32.dll+ssleay32.dll.zip,至少解决了...

    OpenSSL libeay32.lib libeay32.dll ssleay32.lib ssleay32.dll

    开发人员在编译程序时可以将这些库链接到他们的代码中,使得程序在运行时无需依赖外部的DLL文件。这样做的好处是减少了程序的依赖性,但可能会增加程序的大小。 libeay32.dll 和 ssleay32.dll 则是动态链接库文件,...

    advapi32.dll user32.dll gdi32.dll kernel32.dll

    在Windows XP操作系统中,`advapi32.dll`、`user32.dll`、`gdi32.dll`和`kernel32.dll`是四个至关重要的动态链接库(Dynamic Link Library,DLL)文件,它们构成了系统核心服务和图形用户界面的基础。这些文件不仅对...

    Everything32.dll和Everything64.dll

    标题中的"Everything32.dll和Everything64.dll"是指由VoidTools公司开发的一款高效文件搜索工具——Everything的动态链接库文件。这两个文件是程序的核心组件,分别针对32位和64位操作系统设计。 Everything32.dll...

    galil开发文件dmc32.dll

    dmc32.dll使得开发者能在VC++环境中调用这些功能,无需直接操作底层硬件,简化了开发过程。 在VC++中使用dmc32.dll,首先需要将其导入到工程中。这通常通过在项目设置中添加库目录和链接器输入来完成。将dmc32.dll...

    最全的Opengl工具包glut32.dll,glu32.dll等以及头文件

    (1) 把 glaux.dll、glut32.dll、glut.dll 拷贝到C:\WINDOWS\system32目录下,system32目录下应该已经有 opengl32.dll、glu32.dll了。 (2) 把 GL.H、GLAUX.h、glu.h、glut.h 拷贝到 C:\Program Files\Microsoft ...

    最新openssl编译的libeay32.dll和ssleay32.dll(含lib)

    `ssleay32.dll`则是OpenSSL的SSL/TLS协议实现库,它负责处理网络通信中的安全套接字层(SSL)和传输层安全(TLS)协议,包括握手过程、数据加密解密、证书验证等关键步骤。这两个库文件在Windows系统中是许多应用...

    各种系统版本的visa32.dll大集合

    开发人员在使用VISA功能时,通常会通过编程语言(如C,C++,Python等)调用`visa32.dll` 中的函数。这些函数包括初始化资源管理器、打开设备、发送命令、接收数据、关闭设备等操作。例如,`viOpenDefaultRM` 函数...

    DELPHI7做IDHTTP开发SSL时,提示使用的2个DLL文件 libeay32.DLL 和 ssleay32.DLL 亲测可用

    在使用DELPHI7进行IDHTTP组件开发以支持SSL(安全套接字层)通信时,可能会遇到需要...这将帮助你在开发过程中建立安全的网络通信,保护用户数据不受侵犯。通过熟练掌握这些知识,你可以创建出更安全、可靠的网络应用。

    斑马ZEBRA ZPL指令打印所需SMT.ZEBRA.dll以及中文打印FNTHEX32.DLL

    本文将详细介绍ZEBRA ZPL指令在打印过程中的作用,以及与SMT.ZEBRA.DLL和FNTHEX32.DLL这两个关键组件的关系。 ZEBRA ZPL是一套基于ASCII的命令集,用于创建和打印标签、条形码、二维码等。它提供了丰富的指令,如...

Global site tag (gtag.js) - Google Analytics