当前位置:首页 » 编程软件 » vs怎么编译c语言做dll

vs怎么编译c语言做dll

发布时间: 2022-12-27 20:18:11

Ⅰ 用VS 如何由源代码生成DLL文件

1:创建DLL工程

文件->新建->项目->visual c++->win32->win32控制台应用程序(win32项目也可以)

填写项目名称MyDLL->确定->下一步->DLL(附加选项 对空项目打钩)->完成。

到这里DLL工程就创建完毕了,下面新建两个文件MyDLL.cpp和MyDLL.h。

MyDLL.cpp内容如下:

testMyDLL.h内容如下

#pragmaonce


extern"C"_declspec(dllexport)intAdd(int&a,int&b);

现在可以编译通过了,但是程序运行就报错,还需要将MyDLL.dll复制到当前项目生成的可执行文件所在的目录。(这一点非常重要)

这里需要注意testMyDLL.cpp文件中调用lib的这句话:

#pragmacomment(lib,"..\debug\MyDLL.lib")

这里需要指明lib所在的文件夹,当然我们也可以在生成dll的MyDLL工程中,指定lib和dll文件的输出路径,直接到testMyDLL工程下。

注意:如果只有dll文件,那么必须在程序里面调用LoadLibrary()函数才能使用,如果有lib文件,那么有两种方式可以马上进行调用

Ⅱ vs2010编译c的dll,在c++中调用问题

楼上说的很对,我在用java NDK 开发也是这样的问题,但是一样是用extern "C" 搞定,

贴段代码给你看看

#include<jni.h>
#include<stdio.h>
#include<pthread.h>
#include<unistd.h>
#include<android/log.h>
extern"C"
{

voidJava_com_example_jniopengl_MainActivity_go(JNIEnv*env,jobjectthiz);


}

void*run_by_thread(void*num)
{
int*nums=(int*)num;
intstatus=0;
for(inti=0;i<3;i++)
{
::sleep(1);
::__android_log_print(1,"go++","thread%d:_%d",*nums,i);
}

if(*nums==1)
{status=100;
return(void*)&status;
}
elseif(*nums==2)
{
status=200;

::pthread_exit((void*)&status);
}}
voidstart_threads()
{
pthread_tth1,th2;
intthreadNum1=1;
intthreadNum2=2;
intret=-1;
intre=::pthread_create(&th1,NULL,run_by_thread,(void*)&threadNum1);
re=::pthread_create(&th2,NULL,run_by_thread,(void*)&threadNum2);
void*status;
re=::pthread_join(th1,&status);
int*code=(int*)status;

__android_log_print(1,"code","code:%d ",*code);

re=::pthread_join(th2,&status);
int*code2=(int*)status;
__android_log_print(1,"code","code:%d ",*code2);

}

voidJava_com_example_jniopengl_MainActivity_go(JNIEnv*env,jobjectthiz)
{


start_threads();


}

Ⅲ vs2010怎么编译生成dll文件

可以在开始建立新项目的时候选择DLL类型进行编写
一般情况下有四种可选的类型:windows应用程序,控制台应用程序,DLL,静态库。
当完成DLL的编写之后,点击菜单栏【生成】->【生成解决方案】然后进入该解决方案源文件夹下找到bin->Debug会发现DLL文件已经生成。

Ⅳ 我在VS2017里面用C#在.net framework上编写了一个dll,我想编译,怎么解决

您的编译已经完成了。在debug或者release文件夹下可以看到.dll文件(也可能会有xml文件),但是这是一个类库,本身是不能直接运行的,所以在VS中使用“运行”(F5)会弹出这样的提示。如果您想要调试这个类库,请在解决方案下添加一个新的项目,引用这个类库项目,然后进行测试。

c语言写的程序怎么样生成.dll文件

dll制作步骤:
1.编写dll函数实现源代码hello.c

#include

int say_hello(char* name)
{
printf( "hello %s\n ", name);
return 1;
}

2.编写dll函数输出定义文件hello.def.

LIBRARY hello
EXPORTS
say_hello @1

3.编译dll源码,生成dll,lib文件.

3.1 新建命令行窗口
3.2 设置PATH ?? INCLUDE ?? LIB 3个环境变量.

SET PATH=K:\vcnet\vc7\bin;%PATH%
SET INCLUDE=K:\vcnet\vc7\include;%INCLUDE%
SET LIB=K:\vsnet\Vc7\lib;%LIB%

3.3 编译hello.c

cd K:\Source\dllsample (hello.c和hello.def所在目录)
cl /c hello.c

3.4 链接hello.obj,生成hello.dll,hello.lib两个文件.

link /def:hello.def /dll hello.obj

4.测试dll函数.

4.1 编写测试代码 test.c

extern int say_hello(char* name);
int main(int argc,char** argv)
{
say_hello( "robbie ");
return 0;
}

4.2 编译测试代码test.c

cl /c test.c

4.3 链接test.obj和 hello.lib,生成可执行文件test.exe

link test.obj hello.lib

4.4 运行test.exe,屏幕输出:

hello robbie

至此,一个dll构造完毕.

Ⅵ 在怎样情况下把代码编译成dll文件

如果使用的是VS,可以进行如下操作:
打开VS, 文件-新建-新建项目-其他语言-Visual C++ - Win32 控制台应用程序。
单击确定后,弹出对话框,按照对话框“下一步”提示进行操作。
将要编译的C文件拷贝到CreateDLL项目中,.h文件就放到头文件夹的目录下,.c文件放到源文件目录下,注意后缀名为.c的文件都要改成.cpp,否则编译会出错。
注意:申明函数时必须参照上图红框标示出来的规则,在Function.cpp文件中必须要引入对应的#include CreateDLL.h。
选中所有需要编译成dll的cpp文件,右键-属性-预编译头-不使用预编译头,然后选择 “生成”即可,这样在项目的Debug文件夹下面便可找到CreateDLL.dll文件

Ⅶ 用C语言编写DLL

使用微软的vc或者vs,用c语言编程就是了。创建工程的时候会问你是创建什么样的工程,比如控制台程序,mfc程序,动态库(dll)等。
c和c++只是编程语言,动态库依赖于操作系统,在哪个平台下就依赖于哪个平台的动态库生成工具。linux下是so文件,用gcc编译器就可以生成。

热点内容
身份证注册借书卡的密码是什么 发布:2025-07-19 19:44:39 浏览:72
玩梦幻西游哪个配置好 发布:2025-07-19 19:44:37 浏览:751
php数组大小排序 发布:2025-07-19 19:27:51 浏览:645
linux查找并删除 发布:2025-07-19 19:25:14 浏览:934
linux实验环境 发布:2025-07-19 19:15:09 浏览:409
python替换列表元素 发布:2025-07-19 19:00:46 浏览:116
如何知道加密方式 发布:2025-07-19 18:40:38 浏览:937
php溢出 发布:2025-07-19 18:39:05 浏览:411
php获取编码 发布:2025-07-19 18:27:29 浏览:708
易语言编译模块 发布:2025-07-19 18:18:40 浏览:689