精华内容
下载资源
问答
  • 在运行输入regsrv32 你的dll文件名.dll注册dll文件,如出错,无法注册, 参考文章:http://www.ssdax.com/859.html 需要cd 到原来错误提示的路径,即可解决。

    在“运行”输入regsrv32 你的dll文件名.dll注册dll文件,如出错,无法注册,

    参考文章:http://www.ssdax.com/859.html 需要cd 到原来错误提示的路径,即可解决。

    展开全文
  • 求解VS2010 vc如何生成dll文件,如何调用dll动态
  • 1、动态生成: 新建.cpp #include <windows.h> #include "CalSeedKey.h" DLL_API int _key = 255; DLL_API int seedkey = 0; DLL_API int CalSeedKey1(int seed) { seedkey = seed-1; return 0; } ...

    1、动态库生成:

    新建.cpp

    #include <windows.h>
    #include "CalSeedKey.h"
    
    DLL_API int _key = 255;
    DLL_API int seedkey = 0;
    
    DLL_API int CalSeedKey1(int seed)
    {
    	seedkey = seed-1;
        return 0;
    }
    
    DLL_API int CalSeedKey2(int seed,int key)
    {
    	return seed+key;
    }
    
    DLL_API int CalSeedKey3(int seed, int key)
    {
    	key = seed + key;
    	return 0;
    }

    新建.h

    #ifdef DLL_EXPORTS
    #define DLL_API __declspec(dllexport)
    #else
    #define DLL_API __declspec(dllimport)
    #endif
    
    extern DLL_API int seedkey;
    extern DLL_API int _key;
    
    DLL_API int CalSeedKey1(int seed);
    DLL_API int CalSeedKey2(int seed ,int key);
    DLL_API int CalSeedKey3(int seed ,int key);
    

    新建入口函数dllmain.cpp:

    #include <windows.h>
    BOOL APIENTRY DllMain( HMODULE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved
                         )
    {
        switch (ul_reason_for_call)
        {
        case DLL_PROCESS_ATTACH:
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
        }
        return TRUE;
    }
    
    

    新建CalSeedKey.def模块文件导出函数:

    LIBRARY
    EXPORTS
    seedkey @1
    _key @2
    CalSeedKey1 @3
    CalSeedKey2 @4
    CalSeedKey3 @5
    

    生成dll:

    2、dll加载调用

    主要是指针函数的使用,通过dll导出函数的地址。

    typedef int(*CalseedKey)(int a);
    typedef int(*CalseedKey1)(int a,int b); 
    typedef int(*_Key); 

    新建callDll.cpp:

    #include <stdio.h>
    #include <windows.h>
    int main()
    {
    	int a = 10, b = 10;
    	HMODULE hDll = LoadLibrary("DLL.dll");
    	if (hDll != NULL)
    	{
    		CalseedKey   seedKey = (CalseedKey) GetProcAddress(hDll, "CalSeedKey1");
    		CalseedKey1 seedKey2 = (CalseedKey1)GetProcAddress(hDll, "CalSeedKey2");
    		CalseedKey1 seedKey3 = (CalseedKey1)GetProcAddress(hDll, "CalSeedKey3");
    		_Key seedkey = (_Key)GetProcAddress(hDll, "seedkey");
    		seedKey(100);
    		printf("\nCalSeedKey:%d", *seedkey);
    		printf("\nCalSeedKeyReturn(%d,%d):%d",a,b, seedKey2(a, b));
    		seedKey3(a, b);
    		printf("\nCalSeedKeyReturn(%d,%d):%d",a,b, b);
    	}
    	return 0;
    }

    测试:

    展开全文
  • C++ dll只生成dll文件,而未生成lib文件的问题逐项检查 逐项检查 新建项目时,选择应用程序类型为dll,并勾选“Export Symbols”; 属性-&amp;gt;链接器-&amp;gt;高级-&amp;gt;导入库 中定义输出...

    C++ dll库只生成dll文件,而未生成lib文件的问题

    逐项检查

    1. 新建项目时,选择应用程序类型为dll,并勾选“Export Symbols”;
    2. 属性->链接器->高级->导入库 中定义输出的lib库的目录及文件名;
    3. 在头文件中定义符号输出:
    	#define ZJJ_API  __declspec(dllexport)
    	
    	class ZJJ_API YourClassName {}
    	
    	ZJJ_API func1();
    
    展开全文
  • 由动态库文件dll生成lib库文件

    万次阅读 2014-06-18 11:02:55
    本文基于OpenBlas的编译和安装,来说明如何从一个dll文件生成lib文件。 参考OpenBlas的说明“Howto generate import library for MingW”,和MinGW的说明HOWTO Create an ImportLibrary for a DLL using MinGW,...

    本文基于OpenBlas的编译和安装,来说明如何从一个dll文件生成lib库文件。

    参考OpenBlas的说明“Howto generate import library for MingW”,和MinGW的说明HOWTO Create an ImportLibrary for a DLL using MinGW,学习如何生成lib库,其中OpenBlas的说明讲的是如何使用Visual studio的lib.exe工具从dll生成lib文件,而MinGW讲的是如何把一个windows的dll转变成MinGW可以使用的.a型的lib库。使用Visual studio的工具,从dll生成lib文件的具体步骤如下:

    1. 编写bat批处理文件nmake.bat,做如下设置:

        setpath=%path%;"C:\Program Files\Microsoft Visual Studio 8\VC\bin"
        cmd.exe /kvcvars32.bat
    2. 启动nmake.bat,进入OpenBals库的安装目录:


    3.  使用dumpbin导出函数列表到某个文件中:

        dumpbin -exports libopenblas.dll>t.txt

    4. 生成的t.txt中包含了dll文件的导出函数信息,如下:

    Microsoft(R) COFF Binary File Dumper Version 6.00.8447
    Copyright(C) Microsoft Corp 1992-1998. All rights reserved.
     
     
    Dump of file libopenblas.dll
     
    File Type: DLL
     
      Section contains thefollowing exports for libopenblas.dll
     
               0 characteristics
        53A0ED46 time date stamp Wed Jun 1809:37:10 2014
            0.00 version
               1 ordinal base
            7417 number of functions
            7417 number of names
     
        ordinal hint RVA      name
     
              3   0 000012C0 CAXPY
           3084   1 00248C30 CBBCSD
           2070   2 00158A30 CBDSQR
    …
           5017 1CF7 004303C0 zupmtr
           5018 1CF8 004303C0 zupmtr_
     
      Summary
     
            1000 .CRT
          10E000 .bss
            2000 .data
           25000 .edata
           7D000 .eh_fram
            1000 .idata
           37000 .rdata
           21000 .reloc
          80D000 .text
            1000 .tls

    5.  将t.txt中“ordinal hintRVA      name”一行之前以及下面“Summary”之后的内容全部删除,然后使用UtriEdit等带有列编辑功能的文本编辑器打开t.txt,切换到列模式:


    6. 在最前面一列加入@(选择第一列,然后输入@即可);

    7.  将name列移动到@前面;

    8.  删除hint和RVA两列;

    9. 在文件的前面添加两行,最后改造成下面这样:

    LIBRARY libopenblas.dll
    EXPORTS
    
     CAXPY                               @         3
     CBBCSD                              @      3084
     CBDSQR                              @      2070
     CCOPY                               @         6
     CDOTC                               @         9
     …
     …
     zupgtr                              @      5014
     zupgtr_                             @      5015
     zupmtr                              @      5017
     zupmtr_                             @      5018
    10. 将上面改造完成后的文件重命名为libopenblas.def,然后使用lib命令,生成lib文件,如下:

           lib /machine:i386 /def:libopenblas.def
        对于64位的机器,使用:
          lib /machine:X64 /def:libopenblas.def
    11. 至此,我们需要的lib库文件生成了,我们只需要在Visualstudio的包含目录里添加OpenBlas的include目录,在lib目录里包含lib库的目录,并且把libopenblas.lib加入到附加依赖项里就可以使用OpenBlas库了。

    至于MinGW的帮助HOWTO Create an ImportLibrary for a DLL using MinGW讲的是我们在拥有dll文件的时候,如何生成MinGW可以使用的后缀为.a的lib库的步骤,这里假定我们至于libopenblas.dll,没有libopenblas.a,我们要生成libopenblas.a基本步骤如下:

    1.  在mysys shell里,切换到dll文件所在目录;

    2.  新建文本文件,命令为libopenblas.def,在其前面添加以下两行:

    LIBRARY libopenblas.dll
    EXPORTS
    3.  根据编译器的连接错误提示,依次将无法连接的函数名加入到这个def文件中,一行一个;

    4.  等定义完def文件后,使用下面的命令生成.a文件:

    libtool –d libopenblas.def –l libopenblas.a

    命令执行完毕后,生成的libopenblas.a文件就是MinGW的lib库文件。

    这个说明中的第3步完全是基于MinGW的视角来看的,在Windows下,我们可以使用Visual studio的bumpbin来完成这个步骤,也就是前面讲的如何生成def文件的步骤。

    另外Mingw实际上提供了一个工具用于完成这个事情,只是在HOWTO Create an ImportLibrary for a DLL using MinGW一文中他们自己都没有说清楚,对于libopenblass.dll,在MinGW下使用下面的命令生成def文件:

    pexports libopenblas.dll > libopenblas.def
    如果Mingw提示没有pexports命令,我们只需要使用Mingw-get安装一下即可:

    mingw-get install pexports


    展开全文
  • DLL即动态链接(Dynamic-Link Library)的缩写,相当于Linux下的共享对象。...一般的动态程序有lib文件和dll文件,lib文件是编译时期连接到应用程序中的,而dll文件才是运行时才会被调用的。 为了根号...
  • 1、需要定影的dll动态库文件 比如 : FileEncryption.dll 2、需要该动态的头文件  头文件为 interface.h #ifndef __INTERFACE_H__ #define __INTERFACE_H__ #ifndef __PUBLIC_H__ #include "public.h&...
  • .h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的。 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件。如果要完成源代码的编译和链接,有头文件和lib...DLL文件作用是: 函数可执行代码
  • ...附加依赖项的是.lib不是.dll,若生成了dll,则肯定也生成lib文件。如果要完成源代码的编译和链接,有头文件和lib就够了。如果要使需要动态连接的程序运行起来,有dll就够了。在开发和调试阶
  • nuget下载dll库文件

    千次阅读 2017-07-16 15:40:57
    提了一个issue,地址issue,请求dll库。 然后作者的回复大概是: 先下载:nuget.exe,然后执行命令:.\nuget.exe Install FluentFTP就会在nuget.exe同目录生成一个文件夹,里面有各个版本的dll。 不得不说,歪...
  • .h头文件 .lib库文件 .dll动态库文件之间的关系

    万次阅读 多人点赞 2013-10-12 11:56:52
    .h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的。 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件。如果要完成源代码的编译和链接,有头文件和lib就...DLL文件作用是: 函数可执行代码
  • java调用dll动态库文件的一般总结

    万次阅读 2017-02-17 10:46:21
     首先需要明白的是,在java中是不能直接调用动态文件的,因为动态文件是使用c或是c++编写的,作为一种跨 平台的编程语言,java提供了一些用来读取dll文件方法,  一种是直接用JNI,这种方法一般来说用的人比较...
  • dll动态链接库文件编写

    万次阅读 多人点赞 2017-12-02 20:50:52
    1.动态链接dll)概述 没接触dll之前觉得它很神秘,就像是一个黑盒子,既不能直接运行,也不能接收消息。它们是一些独立的文件,其中包含能被可执行程序或其他dll调用来完成某项工作的函数,只有在其他模块...
  • .dll文件DLL文件

    千次阅读 2019-04-11 11:40:57
    动态链接英文为DLL,是Dynamic Link Library的缩写。DLL是一个包含可由多个程序,同时使用的代码和数据的。例如,在 Windows 操作系统中,Comdlg32.dll 执行与对话框有关的常见函数。因此,每个程序都可以使用该...
  • C#编写动态链接类库dll文件

    万次阅读 2017-04-16 18:22:34
     DLL是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 ...
  • 一、静态和动态1、静态(.lib) 函数和数据被编译进一个二进制文件(通常扩展名为.LIB)。在使用静态的情况下,在编译链接可执行文件时,链接器从中复制... 2、动态(.lib文件和.dll文件) 在使用动态
  • VS 编写c++dll库文件

    万次阅读 2015-08-03 08:45:17
    什么是DLL(动态链接)? DLL是一个包含可由多个程序同时使用的代码和数据的。例如:在Windows操作系统中,Comdlg32 DLL执行与对话框有关的常见函数。因此,每个程序都可以使用该DLL中包含的功能来实现“打开...
  • 先引用你的宝贝库DLL: 第二步:创建Resourses文件夹 一般来说往Rex文件添加一张图片或者文本文件就能引诱他自动创建的。 第三步:引入DLL作为资源文件 此时,得到: 然后,点击他,更改类型,非常重要此步!!!...
  • 因为这次需要调用其他再生成自己的动态,在最开始的时候只生成Dll文件 没有lib文件。 解决,是把需要调用的的两个dll文件放在执行文件的路径下,保证封装的函数能成功运行调用这个,才能将函数导出。 ...
  • DLL文件即动态链接文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。  DLL多数情况下是...
  • unity如何调试dll库文件

    千次阅读 2017-08-04 12:47:40
    首先,调试这个dll文件,必须在本地有工程~ 并且安装visual studio tools for unity~这是前提。 我是在visual studio 2015中进行调试的。 然后打开unity中需要调试的脚本文件,在解决方案中添加外部工程,也就是...
  • QT中使用labview生成的dll文件 ...生成dll文件 QT中调用dll 新建QT项目,创建include和lib两个文件夹. 将ShareLib.h复制到include,ShareLib.dll和SharedLib.lib复制到lib文件夹中. pro文件中增加: LIBS += -L$$P
  • 导入文件(.LIB) :可以由DLL文件和导出(.exp)文件通过命令生成。(记得要进入VC++的命令环境,一般是打开在开始菜单中的VC目录里的命令提示,通过平常的命令提示进入VC的bin目录后运行vcvars32.
  • 在c++的项目中如果设置了包含于引用,设置了引用或包含的路径,如果单拿出debug文件运行里面的exe,提示报错缺少引用的文件,可直接将缺少的文件等放置debug目录下即可运行。 如果运行exe程序提示缺少dll,或...
  • c++动态打包为dll文件供C#项目调用

    千次阅读 2018-09-27 11:32:15
    C++与C#接口交互需要通过DLL库来完成。 编写C++动态 创建项目: 添加C++测试类: 在MathAPI.h定义接口方法: #pragma once class MathAPI { public: MathAPI(); ~MathAPI(); static _declspec(dll...
  • 很多朋友想使用VS2015生成动态(因入库lib文件和dll文件),但根据网上资料生成的却只有dll文件,没有lib文件,主要原因是没有按照指定格式去写代码,下面我写出一个通用的模板来简单阐述怎么生成lib文件和dll文件...
  • 创建后吧dll文件放入其中选择这个 然后进行配置 选择完成后进行配置-Djava.library.path=dll文件存放目录 然后就基本可以执行了加上这一句 public static void main(String[] args) { ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,790
精华内容 9,516
关键字:

dll文件库