實现vbvc混合编程的关键技术.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
實现vbvc混合编程的关键技术

实现VB、VC混合编程的关键技术(实例) 阳剑 2007-12-18 混合编程的方式,4种: Shell启动式。缺点,明显不灵活 过程:VC 编写程序hello.exe。 VB中用: Shell E:\\C\\C++\\Projects\\gray2bit2\\Debug\\gray2bit.exe, vbNormalFocus 测试:Shell F:\\pictures\\women\\155.bmp, vbNormalFocus DLL技术 MFC Dll有三种(可能只供MFC调用): 2.1 VC中生成win32 dll 1)创建工程 与VB链接的是NON-MFC dll,即要求创建win32 dll。 2)添加.def文件,准备输出函数和变量: 编辑.def: LIBRARY ipcvdll EXPORTS filter1 ; symbols exported 3)编辑.cpp文件 // ipcvdll.cpp : Defines the entry point for the DLL application. // #include stdafx.h BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; } void _stdcall filter1(LPVOID ImgArray, long PicHeight,long Picwidth,long PicWidthBytes) { int temple[3][3]; UCHAR *PicArray=(UCHAR *)ImgArray; int Result; int nPerPixel=(int)(PicWidthBytes/double(Picwidth));//假定处理的都是8位,24,32位图像 if(nPerPixel!=1 nPerPixel!=3 nPerPixel!=4) return; for (int i=0;i3;i++) { for(int j=0;j3;j++) { temple[i][j]=-1; } } temple[1][1]=9; for (i=1;iPicHeight-1;i++) { for(int j=1;j(Picwidth-1);j++) { for(int jj=0;jjnPerPixel;jj++) { Result =0; UCHAR temp=(*(PicArray+i*PicWidthBytes+j*nPerPixel+jj)); for(int k=0;k3;k++) { for (int l=0;l3;l++) { Result +=temple[k][l]*(*(PicArray+(i+k-1)*PicWidthBytes+(j+l-1)*nPerPixel+jj)); } } if(Result0) Result=0; if(Result255) Result=255; (*(PicArray+i*PicWidthBytes+j*nPerPixel+jj))=(UCHAR)(Result); if(temp!=Result) { CHAR diff=0; diff=temp-Result; } } } } } //图像滤波处理 4).dll文件的生成(Release版本的.dll,默认设置Debug版本) Build-Set Active Configuration 2.2 Vb程序: 1)标准模块中声明只能为Public,在类模块和窗体模块中只能Private。 Public Declare Sub filter1 Lib E:\C\C++\Projects\ipcvdll\release\ipcvdll (ByRef ImgArray As Byte, ByVal PicHeight As Long, ByVal PicWidth As Long, ByVal PicWidthBytes As Long) 2)调用dll函数(图像句柄似乎是直接对应加载到内存的图像数据,下面的例子可以对图像连续处理): Dim Result, totalBytes As Long Dim

文档评论(0)

xznh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档