您好,请问怎么将一个现有的MFC程序打包成DLL文件供JAVA和C++调用?非常感谢

C++ win32生成DLL文件供其他程序调用该怎么生成求步骤~

如果你使用的是VISUAL STUDIO
1、从“文件”菜单中,选择“新建”,然后选择“项目…”。
2、从“项目类型”窗格中选择“Visual C++”下的“Win32”。
3、从“模板”窗格中,选择“Win32 控制台应用程序”。
4、为项目选择一个名称,如“MathFuncsDll”,并将其输入“名称”字段。为解决方案选择一个名称,如“DynamicLibrary”,并将其输入“解决方案名称”字段。
5、按“确定”启动 Win32 应用程序向导。在“Win32 应用程序向导”对话框的“概述”页中,按“下一步”。
6、从“Win32 应用程序向导”中的“应用程序设置”页中,选择“应用程序类型”下的“DLL”(如果可用),或者选择“控制台应用程序”(如果“DLL”不可用)。某些版本的 Visual Studio 不支持使用向导创建 DLL 项目。您可以稍后对此进行更改,以将项目编译为 DLL。
7、从“Win32 应用程序向导”的“应用程序设置”页中,选择“附加选项”下的“空项目”。


VC6.0下
1、编写非MFC的DLL库
(1) VC6.0下建立Win32 Dynalmic-Link Library工程mydll。

(2)工程下创建一个mydll.h头文件和mydll.cpp实现文件。
mydll.h头文件如下:
#ifndef MYDLL_H#define MYDLL_H
#ifdef DLL#define EXTERN extern "C" _declspec(dllexport)#else#define EXTERN extern "C" _declspec(dllimport)#endif
EXTERN int myadd(int, int);
#endif

mydll.cpp实现文件如下:
#define DLL#include "mydll.h"
int myadd(int a, int b){ return a+b;}

(3)编译生成DLL动态库mydll.dll

2、创建一个调用DLL库的应用程序testapp
(1)在VC6.0下建立Win32 Console Application工程,在下一步选择简单应用程序。

(2)修改testapp.cpp文件,实现调用mydll.dll动态库中的函数myadd。实现如下:
#include "stdafx.h"#include #include typedef int (*padd)(int, int);
int main(int argc, char* argv[]){ HINSTANCE handle = ::LoadLibrary("../../mydll/debug/mydll.dll");//mydll.dll动态库路径 if(handle != NULL) { padd pf = (padd)GetProcAddress(handle,"myadd"); if(pf != NULL) { printf("dll myadd(3,2) = %d", pf(3,2)); }
::FreeLibrary(handle);
} return 0;}
(3)编译生成exe应用程序testapp.exe。

(4)运行testapp.exe,结果如下:
dll myadd(3,2) = 5

1、首先要用到JNA包,下载好解压到需要的项目文件夹 bin文件夹下,然后在工程的 Build Path-configure path-libraries中加入这两个jar。



2、第二步,就是新建一个类,实现Library接口

package implementation;
import com.sun.jna.Library;
import com.sun.jna.Native;

public interface JNATestDll extends Library {
JNATestDll instanceDll = (JNATestDll)Native.loadLibrary("JNATestDLL",JNATestDll.class);
public int test001(int a,int b);
public int test002(int n);
}

要先创建一个DLL文件才行,然后编译之后就会在debug目录下有一个lib文件和一个dll文件,把这两个文件还有头文件提取出来就可以用了!

新建一个dll工程,把mfc程序的头文件及cpp文件作为现有项加入工程,还有其他的一些细节自己看情况处理吧、

您好!请问我怎么用arcgis将研究区划分为 500 m ×500 m 栅格单元?望解...
答:可以直接创建渔网来解决吧,你看看你是不是需要这种的。

新手一个,请问朗逸s档和m档的使用方法
答:朗逸汽车的M档位下是正常的档位状况,会限制汽车的一定车速下行驶,动力输出的方面就不如汽车的运动模式强劲了。但是M档位的汽车油耗经济性方面是控制得很好的,节省汽车的燃油。

求微机程序,设m是一个三位数,编程实现将m的个位,十位,百位反序而成的...
答:int main(){ int m,invnum; //定义整型变量 int invertnum(int,int); //声明反序函数 printf("Please input the number :\n"); //显示输入一个三位数的提示 scanf("%d",&m); //输入一个三位数...

编写一个程序,将字符串中的第m个字符开始的全部字符复制到另一个字符...
答:{ int j=0,i;for(i=m-1;i<strlen(str1);i++){ str2[j++]=str1[i];} return str2;} int main(){ char str1[10],str2[10];int m;printf("Enter a string:");gets(str1);printf("Enter m:");...

您好,请问您怎么做基于直线的匹配,matlab中,能不能给一份完整的M文件...
答:你说的应该是线性回归问题吧?比如 y=a*x1+b*x2,已知x1,x2,y 要求a,b 使用REGRESS命令就可以了。X =[ 1 1;1 2; 1 3;1 4;1 5;1 6; 1 7; 1 8 ;1 9; 1 10];y ...

请问下我台式电脑有一个sata固态硬盘,想加装一个m.2的固态硬盘做系统盘...
答:2、 打开分区助手后点击原系统分区,然后再点击左边的迁移系统到固态。3、 在弹出的窗口点击下一步,选择固态硬盘,下一步。4、 调整固态的分区大小,分不分区视硬盘大小和个人需求而定 5、 注意上面的提示,教你怎么在...

有一个表长为m的散列表,初始状态为空,现将n(n<m)个不同的关键码插入到...
答:……插入第n个关键码时,x位置不为空,从x+1位置开始探测,直至探测到x+(n-1)位置时才为空(这里假设x+(n-1)<m),执行插入操作,探测次数为n-1次。所以,总的探测次数是一个等差数列,首项为0,公差为1,项...

将长度m和n的有序链表合并为一个个新的有序链表的算法的时间复杂度为...
答:您好,你的问题,我之前好像也遇到过,以下是我原来的解决思路和方法,希望能帮助到你,若有错误,还望见谅!展开全部 要插入到长度为m的单链表,需要找到表尾,这个过程的时间复杂度为o(m),连接的时间复杂度为o(1),...

现有电信itv光猫 TP-LINK无线路由器一个,怎么连接使得itv电视观看和...
答:如果您使用路由器上网可以把电脑ip地址设置为自动获取即可。路由器的设置步骤如下 请您参详 正确连接网络设备,将猫出来的网线(或者直接入户线)连到路由器WAN接口,路由器的lan口任一个接口连到电脑,打开电脑上的Internet ...

...现在想升级新增一个msata接口固态硬盘,如何将原机自...
答:尊敬的联想用户您好,您可以对现有系统进行备份,安装好SSD后还原到SSD所在盘,并删除原有的系统。关于安装SSD,正常情况下您有3种方法可以参考:1.如果您准备购买mSATA口的SSD,建议咨询售后或者查看拆机图,确认该机型是否有...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网