当前位置: 代码迷 >> VC >> VC++.net中怎么在MFC DLL中定义函数,并让VB.net调用.汗,小弟我才学,太菜,别介意
  详细解决方案

VC++.net中怎么在MFC DLL中定义函数,并让VB.net调用.汗,小弟我才学,太菜,别介意

热度:3264   发布时间:2013-02-25 00:00:00.0
VC++.net中如何在MFC DLL中定义函数,并让VB.net调用.....汗,我才学,太菜,别介意
最好能给一段完整的源码例子       带上注释
要有参数,有返回值
怎么才能让它在vb.net中调用?

谢谢了,我刚学VC++.net,还不太懂

比如下面有一段代码,请帮我套在自定义函数里,可以自定义参数Width,Height,返回是否成功的数字0或1


CDC   dc;
dc.CreateDC( "DISPLAY ",NULL,NULL,NULL);
CBitmap   bm;

bm.CreateCompatibleBitmap(&dc,Width,Height);
CDC   tdc;
tdc.CreateCompatibleDC(&dc);
CBitmap*pOld=tdc.SelectObject(&bm);
tdc.BitBlt(0,0,Width,Height,&dc,0,0,SRCCOPY);
tdc.SelectObject(pOld);
BITMAP   btm;
bm.GetBitmap(&btm);
DWORD   size=btm.bmWidthBytes*btm.bmHeight;
LPSTR   lpData=(LPSTR)GlobalAllocPtr(GPTR,size);
/////////////////////////////////////////////
BITMAPINFOHEADER   bih;
bih.biBitCount=btm.bmBitsPixel;
bih.biClrImportant=0;
bih.biClrUsed=0;
bih.biCompression=0;
bih.biHeight=btm.bmHeight;
bih.biPlanes=1;
bih.biSize=sizeof(BITMAPINFOHEADER);
bih.biSizeImage=size;
bih.biWidth=btm.bmWidth;
bih.biXPelsPerMeter=0;
bih.biYPelsPerMeter=0;
///////////////////////////////////
GetDIBits(dc,bm,0,bih.biHeight,lpData,(BITMAPINFO*)&bih,DIB_RGB_COLORS);
//////////////////////////////////
FILE   *lp;
if   ((lp     =   fopen(   "GetDesk.ini ",   "r "   ))   ==   NULL){
lp=fopen( "GetDesk.ini ", "w ");
fprintf(lp, "%04d ",0);
}
else   {
FILE   *lp;
lp=fopen( "GetDesk.ini ", "r ");
char   num[5];
fread(num,1,5,lp);
fclose(lp);

int   filecount=atoi(num);

//static   int   filecount=0;
CString   name;
name.Format( "pict%04d.bmp ",filecount++);
name=m_Path+name;
BITMAPFILEHEADER   bfh;
bfh.bfReserved1=bfh.bfReserved2=0;
bfh.bfType=((WORD)( 'M ' < <   8)| 'B ');
bfh.bfSize=54+size;
bfh.bfOffBits=54;
CFile   bf;
if(bf.Open(name,CFile::modeCreate|CFile::modeWrite)){
bf.Write(&bfh,sizeof(BITMAPFILEHEADER));
bf.Write(&bih,sizeof(BITMAPINFOHEADER));
bf.Write(lpData,size);
bf.Close();
}
GlobalFreePtr(lpData);

lp=fopen( "GetDesk.ini ", "w ");
sprintf(num, "%04d ",filecount);
fwrite(num,1,5,lp);
fclose(lp);
}


希望能把如何定义函数讲得详细些,谢谢

------解决方案--------------------------------------------------------
做成com的

------解决方案--------------------------------------------------------
直接做成一个标准dll,然后在vb.net里面dllimport调用
------解决方案--------------------------------------------------------
我记得孙鑫老师的vc.net教程里有这样的例子,他就是向楼上说的那样先做成dll,然后调用
------解决方案--------------------------------------------------------
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vccore/html/vcwlkSysimportAttributeTutorial.asp
------解决方案--------------------------------------------------------
做成com.提供接口
  相关解决方案