精华内容
下载资源
问答
  • 怎样用VB编写.DLL动态链接库文件编号:QA000507 建立日期:1999年2月10日最后修改日期:2006年8月13日所属类别:Visual Basic - 其他方面 vb6.0 windosNT 请问怎样用VB编写.DLL动态链接库文件,能否有这
    icon_file.gif 怎样用VB编写.DLL动态链接库文件
    编号: QA000507    
    建立日期: 1999年2月10日 最后修改日期: 2006年8月13日
    所属类别: Visual Basic - 其他方面
       
    icon_q.gif     vb6.0
        windosNT
        请问怎样用VB编写.DLL动态链接库文件,能否有这方面的例子。
        (jinbuYu)
       
    icon_a.gif     VB一般可以生成两种特殊的DLL,一个是ActiveX DLL和ActiveX Control(*.ocx)。这两种DLL都是VB支持的标准类型,在VB自身的例子中有,你可以参考。更详细的介绍可以参考我写的《Visual Basic编程晋级:ActiveX控件》(http://china.zealsoft.com/articles/vbactivex/)一书的“第十六章 其他ActiveX部件 ”。
        
        seashell.gifNewViewStudio的意见:
        VB中创建的DLL只是COM组件,无法作为输出函数的DLL,其实这只是个错误的说法。其实MS非常狡猾,如果你是个VB疯狂发烧友的话,应该早就狂试出这种可以创建输出函数的DLL的方法。
         VB编译文件实际上采取了两次编译的方法,首先是调用C2.exe产生*.OBJ文件,然后调用Link.EXE连接。如果在LINK的时候添加EXPORT选项,实际上是可以输出函数的。但是,在VB的工程选项中将这些屏蔽了。而且过分的是:VB在Build完成后会将OBJ文件删除,这样就无法手动通过Link来创建我们需要的DLL了。不过我找到一个比较龌鹾的变通的方法,就是先创建一个Exe工程,在Form_Load事件里面写下面的语句:
        
        Sub Main
         If MsgBox("哈哈", vbOKCancel) = vbOK Then
         Shell "link2.exe " & Command$
         End If
        End Sub
        
        

        然后编译为LinkTemp.EXE,接下来将LINK.EXE改名为Link2.exe,将LinkTemp.EXE改名为Link.EXE。这样在VB调用Link.EXE时会弹出对话框,处理就会中断。这时就可以有机会将OBJ文件拷贝出来了。
        然后我创建了一个ActiveX DLL工程,在这个工程里面添加一个Module并创建一个Public函数mathadd:
        
        Public Function mathadd(ByVal a As Long, ByVal b As Long) As Long
         mathadd = a + b
        End Function
        

        
        编译这个工程,在Link的时候就会中断。然后把创建的Class1.obj、Module1.obj、Project1.obj备份出来。
        然后就可以调用Link2.exe连接OBJ到DLL了,我的连接代码是:
        
        Link2.exe "e:/vbdll/Class1.obj" "e:/vbdll/Module1.obj" "e:/vbdll/Project1.obj" "E:/Program Files/Microsoft Visual Studio/VB98/VBAEXE6.LIB" /ENTRY:__vbaS /EXPORT:mathadd /OUT:"e:/vbdll/ProjectOK.dll" /BASE:0x11000000 /SUBSYSTEM:WINDOWS,4.0 /VERSION:1.0 /Dll /INCREMENTAL:NO /OPT:REF /MERGE:.rdata=.text /IGNORE:4078
        
        注意里面的/ENTRY和/EXPORT开关,/EXPORT开关声明了输出函数mathadd。这样就大功告成了,可以被其他语言引入,例如在VB中,只需要:
        
        Private Declare Function mathadd Lib "e:/vbdll/ProjectOK.dll" (ByVal a As Long, ByVal b As Long) As Long
        
        

        
        主持人注:
        1)更详细地说明,可以参考Ron Petrusha写的Creating a Windows DLL with Visual Basic(http://www.windowsdevcenter.com/pub/a/windows/2005/04/26/create_dll.html?page=1
        2)这里有一个中文例子download.gifvbmakedll.zip
        
        seashell.gif老牛的意见:
        同意楼上NewViewStudio的意见——经过变通,VB可以做出输出函数的标准动态链接库——其实,国外早已经有人做出了在VB中制作标准DLL的Add-Ins了,使用非常方便,我也做过测试,证明确实可行。详情请看这里:
        http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=54190&lngWId=1
    展开全文
  • Qt Andriod 在Windows系统下编译和添加动态库 ...构建时添加库文件和将库文件一起打包3.在新的项目中调用该库总结 日期 作者 版本 说明 2020.12.15 Sleep Tiger V1.0 Release as V1.0 前言 因为项
    日期 作者 版本 说明
    2020.12.15 Sleep Tiger V1.0 Release as V1.0
    2020.12.21 Sleep Tiger V1.1 修改文章版本,添加系统文章链接

    前言

    因为项目实际需求,在windows环境下配置了Andriod的开发环境。在项目开发过程中需要添加自己写的动态库,遇到了一些问题。总结一下:


    参考文档链接:https://download.csdn.net/download/huowubin/6609853 提示:上文需要下载,而且需要修改。以下是本篇文章正文内容,下面案例可供参考

    一、Qt 在Windows 系统下如何编译Andriod使用的动态库?

    通过简单的示例来展示如何编译生成动态库(.so文件)

    源码:

    //xxx.h 文件
    #ifndef MYLIB_H
    #define MYLIB_H
    
    #ifdef Q_WS_WIN //表示在windows环境
    #define MY_EXPORT __declspec(dllexport)
    #else
    #define MY_EXPORT
    #endif
    
    
    class mylib
    {
    public:
    
        int mymax(int i, int j);
        int add(int i, int j);
    
    };
    extern "C" MY_EXPORT int diff(int i, int j);
    #endif // MYLIB_H
    
    //xxx.cpp文件
    #include "xxx.h"
    extern "C" MY_EXPORT int mylib::mymax(int i,int j)
    {
        if(i>=j)
            return i;
        else
            return j;
    }
    
    extern "C" MY_EXPORT int mylib::add(int i,int j)
    {
        return i+j;
    }
    
    extern "C" MY_EXPORT int diff(int i, int j)
    {
        if(i>=j)
            return i-j;
        else
            return j-i;
    }
    
    //xxx.pro 文件
    #-------------------------------------------------
    #
    # Project created by QtCreator 2013-11-11T09:44:53
    #
    #-------------------------------------------------
    
    QT       -= core gui
    
    TARGET = xxx
    TEMPLATE = lib
    
    DEFINES += XXX_LIBRARY
    
    SOURCES += xxx.cpp
    
    HEADERS += xxx.h
    
    unix:!symbian {
        target.path = /usr/lib
        INSTALLS += target
    }
    

    选择安卓编译器 Andriod for armeabi-v7a , 然后点击Qt 左下角build 按钮【就那个小锤子】,等待构建完成。构建完成,然后点击进入编译生成的文件夹,可以看到已经生成动态库文件。

    动态库生成路径:
    …\build-xxx_for_armeabi_v7a_GCC_4_9_Qt_5_9_1_for_Android_armv7-Release\android-build\libs\armeabi-v7a

    在这里插入图片描述

    二、Qt for Andriod如何在Windows开发环境下调用动态库

    1.修改.pro文件

    代码如下(示例):

    ///在源码的andriod的文件新建一个libs文件夹,然后把刚才编译生成的.so文件复制到该文件夹下
    ///-l 后面写的是生成库的文件名称 例如: libXXX.so  则-l写法如下
    LIBS += -L$$PWD/android/libs  -lxxx 
    

    2.构建时添加库文件和将库文件一起打包

    在项目的构建和运行Build Android APK 中如下设置:
    在这里插入图片描述

    3.在新的项目中调用该库

    首先,在项目中引入动态库的头文件在这里插入图片描述

    以下是示例代码:

    //引入动态库头文件
    #include "xxx.h"
    //使用动态库中的类
    mylib bb;
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
    
    
        ui->setupUi(this);
        this->setWindowFlags(Qt::FramelessWindowHint);//
        //调用动态库的方法
        int a=bb.add(15,9);
        QString str = QString::number( a, 10 );
        ui->textEdit->setText(str);
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    

    点击编译运行安卓程序,运行成功!


    后面还有复杂的项目通过插件的形式编译动态库

    系列文章二

    总结

    虽然样例比较简单,但我实际过程中也尝试使用过了其他的代码,编写了复杂的逻辑,都是可以使用的。

    展开全文
  • 问题描述:在用anaconda 安装包时遇到无法定位程序输入点于……动态链接的问题 ① 操作步骤: 1)找到anaconda安装路径: 2) 进入 \DLLS 文件夹,查看 ...4) 如果两文件修改日期不同,用 DLLS文件夹下的 libssl...

    在这里插入图片描述
    问题描述:在用anaconda 安装包时遇到无法定位程序输入点于……动态链接库的问题

    ① 操作步骤:
    1)找到anaconda安装路径:
    2) 进入 \DLLS 文件夹,查看 libssl-1_1-x64.dll 文件的修改日期
    3)进入 \Library\bin 文件夹,查看 libssl-1_1-x64.dll 文件修改日期
    4) 如果两文件修改日期不同,用 DLLS文件夹下的 libssl-1_1-x64.dll 替换 bin文件夹下的libssl-1_1-x64.dll
    5)重新尝试安装

    替换文件之后确实可以解决“无法定位程序输入点”的问题,但再安装其他package时,会再次出现相同的问题,再次查看文件修改日期,发现两个文件夹下 libssl-1_1-x64.dll 的日期又不一致了,需要重新替换

    展开全文
  • 多功能 DLL 动态库

    2010-03-17 01:15:33
    说明:设置文件修改时间,参数:filena 文件名;ftime 指定日期时间。 String ToOtcHex( int source,int OtcHex ) 说明:将十进制的整数转换成十六进制或八进制,参数:source 要转换的十进制整数;OtcHex : ...
  • Mac系统目录结构符合unix传统目录/bin 传统unix命令的存放目录,如ls.../usr/bin, /usr/sbin, /usr/lib,其中/usr/lib目录中存放了共享(动态链接)./etc. 标准unix系统配置文件存放目录,如用户密码文件/etc/pass...

    Mac系统目录结构

    符合unix传统目录/bin 传统unix命令的存放目录,如ls,rm,mv等。

    /sbin 传统unix管理类命令存放目录,如fdisk,ifconfig等等。

    /usr 第三方程序安装目录。

    /usr/bin, /usr/sbin, /usr/lib,其中/usr/lib目录中存放了共享库(动态链接库).

    /etc. 标准unix系统配置文件存放目录,如用户密码文件/etc/passwd。此目录实际为指向/private/etc的链接。

    /dev 设备文件存放目录,如何代表硬盘的/dev/disk0。

    /tmp 临时文件存放目录,其权限为所有人任意读写。此目录实际为指向/private/tmp的链接。

    /var 存放经常变化的文件,如日志文件。此目录实际为指向/private/var的链接。

    OS X系统中,除了标准的unix目录外,还增加了特有的目录。/Applications 应用程序目录,默认所有的GUI应用程序都安装在这里;

    /Library 系统的数据文件、帮助文件、文档等等;

    /Network 网络节点存放目录;

    /System 他只包含一个名为Library的目录,这个子目录中存放了系统的绝大部分组件,如各种framework,以及内核模块,字体文件等等。

    /Users 存放用户的个人资料和配置。每个用户有自己的单独目录。

    /Volumes 文件系统挂载点存放目录。

    /cores 内核转储文件存放目录。当一个进程崩溃时,如果系统允许则会产生转储文件。

    /private 里面的子目录存放了/tmp, /var, /etc等链接目录的目标目录。

    Mac命令行常用操作

    早期的MacOS默认指令bash,最新的默认zshwhich指令

    which flutter

    结果:/opt/flutter/bin/flutter

    查找命令的位置

    2.ls指令

    ls

    列出当前目录所有文件(隐藏文件除外)

    ls -a

    列出当前目录所有文件(包含隐藏文件)

    ls -l

    列出当前目录所有文件包含文件属性(隐藏文件除外)

    ls -a

    列出当前目录所有文件包含文件属性(包含隐藏文件)

    3.配置环境变量

    如果你默认使用的bash那么配置 ~/.bash_profile

    如果你默认使用的zsh那么配置 ~/.zshrc

    4.chmod命令

    文件权限改变使用chmod命令。设置方法有两种:数字类型改变和符号类型改变。

    数字类型:

    各个权限数字对照:r:4 w:2 x:1

    如果一个文件权限为【-rwxr-xr-x】

    User: 4+2+1=7

    Group:4+0+1=5

    Other:4+0+1=5

    命令:chmod 755 文件名

    符号类型

    chmod [u、g、o、a] [+(加入)、-(除去)、=(设置)] [r、w、x] 文件名称Mac文件属性

    drwxrwxr-x+ 33 root admin 1056 5 27 16:59 Applications

    drwxrwxr-x+【权限】【d】目录(directory) 【-】文件

    文件权限: 【r】:read,读 【w】:write,写 【x】:execute,执行。

    注意:这三个权限的位置不会变,依次是rwx,出现减号【-】在对应位置代表没有此权限;一个文件的完整权限,总共分为三组:第一组:文件所有者的权限;第二组:这一组其他用户的权限;第三组:非本组用户的权限

    33【连接】

    root【所有者】

    admin【所属组】

    1056【文件大小】

    5 27 16:59【最后修改日期】

    Applications【文件名称】

    5.chsh命令

    chsh

    查看当前shell使用命令信息

    chsh -s /bin/bash

    切换当前使用的shell命令

    6.查看当前Mac有哪些shell命令

    cd /private/etc

    cat shells

    7.删除文件

    删除空目录

    rmdir 目录

    不过一旦目录非空会提示:Directiry not empty

    使用rm既可以删除文件又可以删除文件夹

    删除文件夹(无论文件夹是否为空)

    rm -rf 目录名字

    -r 就是向下递归,不管有多少级目录,一并删除

    -f 就是直接强行删除,不作任何提示的意思

    强制删除文件

    rm -f 文件名

    8.通过文件名称搜索文件位置

    通过Find命令搜索文件

    find命令非常高效,并且使用简单。find命令来自unix,OS X和Linux系统同样支持该命令。find最基本的操作就是:

    find 文件路径 参数

    比如你可以通过以下命令在用户文件夹中搜索名字中包含screen的文件

    find ~ -iname "screen*"

    你也可以在特定的文件夹中寻找特定的文件,比如

    find ~/Library/ -iname "com.apple.syncedpreferences.plist"

    这个命令可以在Library文件夹中寻找com.apple.syncedpreferences.plist文件

    通过mdfind命令搜索文件

    mdfind命令就是Spotlight功能的终端界面,这意味着如果Spotlight被禁用,mdfind命令也将无法工作。mdfind命令非常迅速、高效。最基本的使用方法是:

    mdfind -name 文件名字

    比如你可以通过下面的命令寻找Photo 1.PNG文件

    mdfind -name "Photo 1.PNG"

    因为mdfind就是Spotlight功能的终端界面,你还可以使用mdfind寻找文件和文件夹的内容,比如通过以下命令寻找所有包含Will Pearson文字的文件:

    mdfind "Will Pearson"

    mdfind命令还可以通过-onlyin参数搜索特定文件夹的内容,比如

    mdfind -onlyin ~/Library plist

    这条命令可以搜索Library文件夹中所有plist文件。

    9.vim命令

    进入vim编辑要切换成英文输入法,退出编辑界面按下esc键,再按:,然后再按q或者x或者wq;

    展开全文
  • 1.只需引用头文件中的函数,就可以实现常用的数据库操作,DLL中使用的是ADO连接方式,使用时无需关注ADO的这些细节,也没必要重新引用ADO的动态链接 2.充分利用C++的函数重载功能,读取字段采用GetRsField函数,...
  • 问题描述:在用anaconda 安装包时遇到无法定位程序输入点于……动态链接的问题 解决方案一 ① 操作步骤: 1)找到anaconda安装路径: 2) 进入 \DLLS 文件夹,查看 libcrypto-1_1-x64.dll 文件修改日期 3)进入 ...
  • 1.到百度AI开放平台 https://ai.baidu.com ,下载百度人脸离线SDK,(注意版本V1.1.0,修改日期:2018.08.31) 2.下载后,把sdk包里那个443 MB的face-resource目录,复制到本demo的BaiduFaceDll\x64目录下(就是...
  • 修改php配置文件php.ini 中 date.timezone 修改时区,date.timezone = 'PRC'; 脚本中设置 date_default_timezone_set函数动态设置时区,date_default_timezone_set('Asia/Shanghai'); 脚本中通过ini_set函数设置当前...
  • “无法定位程序输入点openssl_sk_new_reserve于动态链接XX:\libssl-1_1-x64.dll上”的解决办法 如果你直接在.condarc文件里面的添加channels后,下载时可能会出现下面这个...记\Library\bin下对应文件修改日期为B:
  • **问题原因:**自己创建的环境与base环境对应的文件内容不匹配,.dll文件修改日期不同 解决: 找到自己的env中错误提示的文件; 找到base环境中名字相同错误提示的文件; 用base中的替换自己env中的; ...
  • 出现原因我先在计算机上...因此,我在资源管理器中搜索这个DLL,发现系统中有两个同名DLL,一个在c:/windows/system32/下,一个在c:/oracle/oracle9i/bin目录下,而且在bin目录下的文件修改日期比在system32目录下的dll修
  • 1. 环境 win10+anaconda4.7 ...查看Anaconda\DLLs目录下libssl-1_1-x64.dll和Anaconda\Library\bin下libssl-1_1-x64.dll修改日期不同,先备份好,用一个替换另一个dll文件,问题解决。可以相互替换尝试两次。 ...
  • 查看Anaconda\DLLS和Anaconda\Library\bin这两个目录下的libssl-1_1-x64.dll 的最后修改日期,一般会发现两个不一致。解决方法是用旧的替换新的。笔者的是Anaconda\Library\bin目录下的版本更旧,如下图所示。 ...
  • 炫彩界面

    2011-12-05 23:51:32
    支持:VC6.0,VS2005,VS2008,VS2010,易语言,C#,以及支持动态链接调用和回调函数的开发工具和语言. 使用时请导入XCGUI.LIB文件,并包含XCGUI.h头文件. XCGUId.LIB为调试版 在使用中请参考炫彩界面帮助文档: ...
  • 前言:由于项目需要,CS客户端需要不断更新一些文件(包括可执行程序、动态库和一些数据文件),如果手工拷贝很麻烦,需要实现一个在线检测并自动更新的功能。 思路:在服务器端数据库中建表,存储客户端所有文件的...
  • 增加文件日期修改工具 增加加密卷占用磁盘空间压缩功能 CnCrypt V1.10 修改记录 增加加密卷空间扩充工具 恢复了TrueCrypt原有系统加密功能 修正了TrueCrypt安全审计团队审计发现的几个BUG 当有子窗口时用快捷键...
  • asp.net知识

    2015-06-18 08:45:45
    HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可! 服务器自定义开发二之客户端脚本回发 Web开发: 使用URL重写WEB主题切换 如何在Asp.Net1.1中实现页面模板(所谓的...
  • │ │ 技巧183 将中文日期文本转为日期值.xls │ │ 技巧184 计算指定间隔的日期.xls │ │ 技巧185 月度季度相关日期计算.xls │ │ 技巧186 隐秘函数DATEDIF.xls │ │ 技巧187 星期的相关计算.xls │ │ ...
  • 支持:VC6.0,VS2005,VS2008,VS2010,易语言,C#,以及支持动态链接调用和回调函数的开发工具和语言. 使用时请导入XCGUI.LIB文件,并包含XCGUI.h头文件. XCGUId.LIB为调试版 在使用中请参考炫彩界面帮助文档: ...
  • 解决日期选择器被动态增加的iframe覆盖的问题 <br>演示地址:http://www.waytop.net/my97/datepicker/3.0/demo/index.htm<br><br>相对2.1版,优化和修正的问题 <br>1.优化了速度和内存占用 2.增加realValue ...
  • 旧版本为从DOS通道获取,新版本使用动态链接。(更稳定、更安全。) 重新改写文件分析实时信息模块。 增加分析文件的MD5码,并可复制。 增加用户可自行设置是否在软件运行时进行最新版本检测。(每日检测一次) ...
  • 名字就是“"System”,然后在右侧窗口中新建一个DWORD,名字取为“DisableRegistryTools”,修改它的值为“1”,以后,别人、甚至是你都无法再用regedit.exe 啦,如果要恢复的话,用记事本建立一个REG.REG文件,保存...
  • linux 下的hook

    千次阅读 2008-04-02 17:49:00
    ◆ 如何修改动态库符号表 作者:wangdb (mailto:wangdb@nsfocus.com) 主页:http://www.nsfocus.com/ 日期:2000-10-14 一、ELF 文件和有关术语Unix 系统的可执行文件和动态库文件是以 ELF 格式存放的。为使下面的...
  •  静态编译后的易语言可执行程序(exe)和动态链接库(dll),运行时不再依赖任何支持库文件,文件尺寸更小(相对以前的独立编译),PE结构更合理(取消了“易格式体”),加载速度更快,而且有效解决了“病毒误报”和...
  • 百度语音合成前期研究对授权处理的不够妥当,如果项目中有使用设备系统时间则语音合成存在过期风险,所以对语音合成授权进行研究,修改了百度语音so动态库程序文件,即把获取当前系统时间的函数里边日期字符串格式化...
  • 如果您想把它做的jQ的组件,只要在页面引入jQuery的库(此时不再需要引入lhgcore.min.js库文件),代码作一下非常简单的修改即可。 自定义事件和丰富的API库 如果你需要做一些附加的操作,你也不必担心,日期控件自带的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 516
精华内容 206
关键字:

动态库文件修改日期