需要将一个窗口封装成dll,供平台调用,调用时嵌入某块区域

需要将一个窗口封装成dll,供另外一个平台调用,平台会预留一块区域供窗口显示,窗口嵌入到那块区域,不是浮动在父窗口之上,请问我怎么设计这个窗体?VS2010 winform程序 C#

2个回答

把这个窗体做成自定义控件(继承Form)不就行了,自定义控件编译后会生成dll,将dll添加到新项目中,并且将其添加到工具箱中(工具箱右键-》选择项),就可以把窗体当成控件随意拖拽了。

新建一个windows控件库类型的项目,设计界面,放入代码。
另一个程序引用这个dll,创建对象,并且用Controls.Add添加到那块区域。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Opencv封装成dll供.net调用方法
通过把picturebox句柄传进去,调用。接口非托管-托管整数类型输入输出可以,string类型不行(需要转换,未完成)。
关于封装成DLL
我有一个项目,在此项目中A(exe)模块调用了B(DLL, C++编写,静态加载的方式)和C(DLL, delphi编写,LoadLibraryEx方式加载)。后来因为项目需求改变,需要把A封装成DLL供C#调用,封装完后,发现C#通过A调用B时可以成功的,可是当调用C的时候,就会直接崩溃,报错:rnAttempted to read or write protected memory. This is often an indication that other memory is corrupt.rn打断点发现崩溃的地方就是A中调用C函数的时候,希望能得到你的帮助,谢谢。
ASP封装成DLL
本文档告诉读者怎样将ASP封装成DLL,需要使用word2007打开文档。
DCMTK封装成DLL
DCMTK为静态Lib库,为了在C#中进行调用,需要封装为Dll。即根据需要,建立一个新的VC++ DLL,把相关Lib的应用进去。 使用的版本为dcmtk-3.6.1,CMAKE版本为2.8.8, MD为dcmtk-3.6.0-win32-i386-support_MD。 1. 按介绍,使用CMAKE创建在VS2010可用的DCMTK工程。 参见“http://bbs.h...
JS封装成DLL
1,新建程序集 2,添加JS,设置嵌入式 3,加Cs文件,内容如下 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Web
一个DLL调用时的错误
Microsoft Visual Studiornrn---------------------------rnrnコンポーネント 'AxHost' を生成できませんでした。エラー メッセージ:rnrn 'System.Runtime.InteropServices.COMException (0x80040111): ClassFactory は要求されたクラスを提供できません (HRESULT からの例外: 0x80040111 (CLASS_E_CLASSNOTAVAILABLE))rnrn 場所 System.Windows.Forms.Design.DocumentDesigner.AxToolboxItem.CreateComponentsCore(IDesignerHost host)rnrn 場所 System.Drawing.Design.ToolboxItem.CreateComponentsCore(IDesignerHost host, IDictionary defaultValues)rnrn 場所 System.Drawing.Design.ToolboxItem.CreateComponents(IDesignerHost host, IDictionary defaultValues)rnrn 場所 System.Windows.Forms.Design.OleDragDropHandler.CreateTool(ToolboxItem tool, Control parent, Int32 x, Int32 y, Int32 width, Int32 height, Boolean hasLocation, Boolean hasSize, ToolboxSnapDragDropEventArgs e)'rnrn---------------------------rnrnOK rnrn---------------------------rn
FastReport 如何封装成DLL供VB6、PB等调用
FastReport 如何封装成DLL供 VB6、PB 等调用开发工具调用。rn非常感谢。小弟Delphi比较弱,麻烦说详细点。拜谢!
可不可以将 EXCEL中的 VBA 封装成 .DLL供调用?
同题。rn请高手指点一二。谢谢!!!rn在线等!!!
dll文件封装成OCX控件
dll文件封装成OCX控件,当然其中也有对dll的调用,其实是c++制作OCX的文档
asp封装成dll的问题
我把asp中的函数封装到了dll中,如果我封装的dll中有函数和windows系统中其它dll中的函数同名,怎么办?
DLL封装成OCX的问题
我想把现成的DLL封装成OCX并在WEB上面调用,我把DLL的.h和lib的文件都引进了OCX中,但在WEB上面总调用不到DLL的函数,哪位能帮忙解决下!!rn是不是我引进的方式错了?
wp 项目如何封装成dll 供其他项目调用
第一次做wprnrn东西直接做完了...生成了xap装在手机上也可以正常用..rnrn现在问题来了..公司要求 把这个 项目 封装成独立模块 内嵌到其他公司的应用人 让别人调用..rnrn以前没做过,资料也不好..rnrn目前应该是 .. 新建一个 wp的类库项目....把代码移过去 编译成dll呢rn还是直接按照网上的一篇文章 2个都是PhoneAPP 让一个APP调用另一个APP(http://www.cnblogs.com/bomo/p/3379018.html)rnrn如果是按照第一种.....rn项目中有一个 PhoneAPP 一个 PhoneLibrnrn那PhoneApp 该如何 打开 PhoneLib 中的页面呢?
C++调用WebService封装成DLL,供外部调用
C++调用WebService封装成DLL,供外部调用
C# wpf 封装成dll供C++调用
本文根据http://download.csdn.net/detail/l250178301/5647347创建,并加上自己的一些实际情况· 首先,新建一个wpf项目 然后 把app.xaml和那个窗口删掉!!!!! 否则会报错 将输出类型从exe->类库 此处为Windows1.xaml.cs的代码,Class_wpf用作调用接口 using
【求助】C#窗口封装成动态链接库供其他语言调用
我想用C#做一个窗体,然后封装成DLL,供其他语言调用。rnrnPS:窗体上有组件,比如按钮,按钮功能:MessageBox.Show() 当然这只是举个例子rnrn最好有源码和说明,谢谢了
MSComm 如何封装成 DLL
如题, MSComm 如何封装成 DLL ,有例子 代码 ,最好
OPENCV封装成DLL的问题
因为需要更新一个老的程序,所以需要把OPENCV2.4.13下的级联分类器算法封装成一个DLL或者LIB移植到C++BUILDER6下面去,在网上找了很多天也没有可靠的方法能完全脱离OPENCV原来的库文件,问一下具体怎么操作才能在VC下将级联分类器封装成DLL脱离原始的库文件。
C++封装成dll问题
C++代码如下rn[code=c]#include "HalconCpp.h"rnusing namespace Halcon;rn#ifndef NO_EXPORT_MAINrn// Main procedure rnvoid action()rnrn using namespace Halcon;rn // Local iconic variables rn Hobject Image, Image1, ImageGauss, GrayImage;rn Hobject RegionDynThresh, ConnectedRegions, Skeleton, Contours;rn Hobject UnionContours, SelectedXLD;rn // Local control variables rn HTuple Width, Height, windowId, Row1, Column1;rn HTuple Row2, Column2, RowBegin, ColBegin, RowEnd, ColEnd;rn HTuple Nr, Nc, Dist;rn if (HDevWindowStack::IsOpen())rn close_window(HDevWindowStack::Pop());rn read_image(&Image, "C:/Users/Administrator/Desktop/采集图片/Picture/25.bmp");rn get_image_size(Image, &Width, &Height);rn set_window_attr("background_color","black");rn open_window(0,0,Width,Height,0,"","",&windowId);rn HDevWindowStack::Push(windowId);rn if (HDevWindowStack::IsOpen())rn set_color(HDevWindowStack::GetActive(),"red");rn if (HDevWindowStack::IsOpen())rn disp_obj(Image, HDevWindowStack::GetActive());rn draw_rectangle1(windowId, &Row1, &Column1, &Row2, &Column2);rn gen_rectangle1(&Image1, Row1, Column1, Row2, Column2);rn gauss_image(Image, &ImageGauss, 5);rn reduce_domain(Image, Image1, &GrayImage);rn dyn_threshold(GrayImage, ImageGauss, &RegionDynThresh, 5, "dark");rn connection(RegionDynThresh, &ConnectedRegions);rn skeleton(ConnectedRegions, &Skeleton);rn gen_contours_skeleton_xld(Skeleton, &Contours, 1, "filter");rn union_collinear_contours_xld(Contours, &UnionContours, 10, 1, 2, 0.1, "attr_keep");rn select_shape_xld(UnionContours, &SelectedXLD, "rect2_len1", "and", 50, 99999);rn fit_line_contour_xld(SelectedXLD, "tukey", -1, 0, 5, 2, &RowBegin, &ColBegin, &RowEnd, rn &ColEnd, &Nr, &Nc, &Dist);rn if (HDevWindowStack::IsOpen())rn clear_window(HDevWindowStack::GetActive());rn if (HDevWindowStack::IsOpen())rn disp_obj(Image, HDevWindowStack::GetActive());rn if (HDevWindowStack::IsOpen())rn disp_obj(SelectedXLD, HDevWindowStack::GetActive());rnrnrn#ifndef NO_EXPORT_APP_MAINrnint main(int argc, char *argv[])rnrn using namespace Halcon;rn // Default settings used in HDevelop (can be omitted) rn set_system("do_low_error","false");rn action();rn return 0;rnrn#endifrn#endifrn[/code]rn求问如何封装成dll,详细步骤,新手谢谢了!
ISampleGrabberCB 封装成Dll 的一个问题
初学,见谅 rn rn想实现这样的功能: rn从摄像头捕捉到视频 rn放到内存 --> 个人认为不应该这样处理 rn经处理后 rn从内存播放出来 --> 这个似乎也不太容易 rn整个过程是要连续实时的 rn整体上有一个时间延迟应该无妨 rn rnrn以下是我现在的方法, 请问是不是整体上就不对? rn(目前我只能实现1frame/sec的抓,所以放起来结果惨不忍睹) rn从ISampleGrabberCB 派生出 CSampleGrabberCB 并加入其他变量rn rn问题是这样的 rn我看书上说能在Extended Dll中整个封装一个类(叫类A,这里就是CSampleGrabberCB) rn但是如果A中含有的变量中间有其他类(类B)的对象 rn还能成功么? rn rn具体的说,我在A中抓到bmp图片,放到内存 rn rn rn原来的程序由A负责将内存中的图片显示出来,所以要知道对话框的指针 rn所以 rnclass A : public ISampleGrabberCB rn rn ... rn COtherDlg *pOwner; rn ... rn; rn rn现在要把A做成dll, rn我试了一下声明成 rnextern CCaptureDlg * pOwner; rn rndll能正常生成 rn但调用dll的工程却不能编译 rn rn报错大致为: (CSampleGrabberCB是放到dll里面的类,将其 .h文件放到调用的工程中 include进来) rn*.h(41): error C2143: 语法错误 : 缺少“;”(在“*”的前面) rn*.h(41): error C2501: “CSampleGrabberCB::CCaptureDlg” : 缺少存储类或类型说明符 rn*.h(41): error C2501: “CSampleGrabberCB::pOwner” : 缺少存储类或类型说明符 rn rn请问应该怎样处理? rn谢谢 rn
WPF封装成DLL方法
WPF封装成DLL方法
将dll封装成ocx
我有一个调用硬件的dll,是在c/s下用的,现系统转到b/s,是否需要把dll封装成ocx吗?还有别的办法没有?
MFC项目封装成DLL
1.准备:①已经测试好的MFC项目解决方案(WinForm1);             ②新建一个MFC的DLL解决方案(WinDLL);             ③新建一个MFC对话框工程(DlgTest); 2.复制MFC项目目录下(.Cpp、.H、.rc、res等)到DLL项目目录下,其中需要修改rc名字为DLL项目名,(.rc是存储MFC资源的文件,res文件夹一般存储需要添加的图片之类...
MSComm 如何封装成 DLL !
如题,MSComm 如何封装成 动态库(DLL),有例子最好
如何将用户控件封装成dll
创建一个项目rn随便拖个用户控件rn摆个按钮 点击时弹个提示框rn如何把这个用户控件封装成一个dllrn求高手,求详解rn菜鸟问题请别见笑-_-
将dll封装成exe
如何将dll文件封装成exe阿?rn需要哪些步骤呢?rn想知道能否能分别从dll和exe的功用上作原理性的解释
MFC程序怎么封装成DLL?
我写了一个MFC程序(对话框),可以接收数据。其中定义了一个消息映射:rnBEGIN_MESSAGE_MAP(CStockDlg, CDialogEx)rn // 定义消息处理函数,处理接收到的数据rn ON_MESSAGE(MSG_STOCK_DATA,OnDataOK)rnEND_MESSAGE_MAP()rnrnrn当数据到来时,会调用OnDataOK()函数对数据进行处理。rnrn现在我想把这个程序封装成DLL,供其他应用使用。我想知道:rn1. DLL中是否可以实现上面的消息映射?rn2. 如果可以,应该使用哪种类型的DLL:规则DLL还是扩展DLL?rn3. 大概的开发思路如何,如果能有示例就更好啦。rnrnrn今天看了一天,还比较晕,请大家指教,谢谢。rn
mfc类 封装成dll
我有一个mfc工程,想将其中的一个类(称为AClass)封装成dll。只是其中的调用太复杂,AClass还用的该工程中其他资源,如其他类。我要怎样做呢?有人遇到过这种情况吗?求指点rnPS:我发现新创建一个MFCdll,然后复制粘贴不行的。rn
如何将class封装成dll?
我有三个类,需要将这三个类重新封装成DLL,调用的时候只需要提供.h和.lib给调用者即可。我该用什么方法进行封装?是静态库?动态库?MFCDLL?还是MFC扩展DLL?rn想要个思路及大概的方法。
将多文档程序封装成一个DLL?
我现有一个多文档程序,想要把它封装成一个DLL,请问如何操作?rn如有例子提供,更好,谢谢各位。
关于类封装成dll
小弟用delphi写了一个类,但是想封装在.dll中,使用的时候就像我调用的类一样,构造一个实例,调用其中的方法,这些构造方法和业务方法我都写好了,就是不清楚如何做成一个dll文件,网上看过一些只是单纯的写了一些方法,没有讲到一个类如何做成dll.希望那个高手指点一下,谢谢!
将Debug封装成dll
在开发过程中避免不了各种Debug调试,在打包的时候为了减少性能消耗,需要将所有的Debug注释或删除掉。如果再次调整则需要取消注释,来回折腾很是麻烦。之前尝试将Debug简单的封装到一个类,利用一个bool控制是否启用Debug功能,正常开发是只需将bool值设为true,打包时设为false即可,但这样就有了更大的一个问题,在控制台双击Log时,只能跳转到封装的Debug类里,不能定位到实际调...
ASP怎么封装成.dll?
有什么好的方法或者工具么?
如何将一个类文件封装成dll
求解了,只有一个类文件,或者说之封装这个类文件
平台调用----封送结构体指针。
请教你 一个问题。rnC定义如下:rnBOOL effnEDClientCheckPointInfoByTime(rnefSTReadRtInfoRequest*pReqBuffer,//rnefSTReadRtInfoResponse * pResBuffer,//rnunsigned long Count //rn);rn结构如下:rn#define EFMI_POINTNAMELENGTH 48 rn#define EFMI_POINTCOMMLENGTH EFMI_POINTNAMELENGTH rnrn//查询实时记录请求包结构rnrntypedef struct defefSTReadRtInfoRequestrn long time; //rn char pointName[EFMI_POINTNAMELENGTH+1];//EFMI_POINTNAMELENGTH+1;rn char ednaServ[EFMI_POINTCOMMLENGTH+1]; // rnefSTReadRtInfoRequest;rnrnrn//查询实时记录回复包结构rnrntypedef struct defefSTReadRtResponsern rn double value;rn long time;rn unsigned short status;//rn char pointName[EFMI_POINTNAMELENGTH+1];//rnefSTReadRtInfoResponse;rnrnc#================rnrn [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]rn public struct defefSTReadRtInfoRequestrn rn public Int32 time; rn [MarshalAs(UnmanagedType.ByValArray, SizeConst = 49)]rn public byte[] pointName;//rn [MarshalAs(UnmanagedType.ByValArray, SizeConst = 49)]rn public byte[] ednaServ;//rnrnrn rnrn //****************************************************************rn [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]rn public struct defefSTReadRtResponsern rn public double value;rn public Int32 time;rn public UInt16 status;rn [MarshalAs(UnmanagedType.ByValArray, SizeConst = 49)]rn public byte[] pointName;//rnrn ;rnrn [DllImport("efEDClient.dll", EntryPoint = "effnEDClientInit", CharSet = CharSet.Ansi)]rn public static extern bool effnEDClientInit();rn rn[DllImport("efEDClient.dll", EntryPoint = "effnEDClientCheckPointInfoByTimeEx", CharSet = CharSet.Ansi)]rn public static extern bool effnEDClientCheckPointInfoByTimeEx(ref defefSTReadRtInfoRequest requestBuffer, out defefSTReadRtResponse responseBuffer, UInt32 count);rnrnrnrnstring[] p = new string[4] "GDHYSSIS.U31_RTS.1EHC:C47.RO01", "GDHYSSIS.U31_RTS.1TURC:J15_01.PNT", "GDHYSSIS.U31_RTS.1TURC:J15_04.PNT", "GDHYSSIS.U31_RTS.1TURC:J15_11.PNT" ;rn for (int i = 0; i < nCount; i++)//显示输出数据rn rn defefSTReadRtInfoRequest req = new defefSTReadRtInfoRequest();rn System.Text.UnicodeEncoding converter = new System.Text.UnicodeEncoding();rn rn string arrP, arrServ;rn arrP = p[i];rn arrServ = "GDHYSSIS.U31_RTS";rn req.pointName = new byte[49];rn req.ednaServ = new byte[49];rn req.pointName = converter.GetBytes(arrP);rn req.time = 0;rn req.ednaServ = converter.GetBytes(arrServ);rn rn rn defefSTReadRtResponse iResp = new defefSTReadRtResponse();rn iResp.pointName = new byte[49];rnrn if (effnEDClientCheckPointInfoByTimeEx(ref req, out iResp, nCount))rn rnrnrn Console.WriteLine("值:" + iResp.value.ToString() + "---" + iResp.status.ToString() + "time:" + iResp.time.ToString());rn rnrnrnrn报错:未能封送数据类型 长度与布局中不匹配。rn
如何将一个DLL[没有原码]封装成一个新的DLL
如何将一个DLL[没有原码]封装成一个新的DLL
平台调用——结构的封送
本章关于在C/C++与C#之间使用的结构体。
什么时候需要把一段代码封装成一个函数什么时候需要封装成一个类呢?
我昨天的那个问题就是想把一段代码封装成一个类 结果版主说没必要封装成类 那么我想问一下什么时候需要封装成类呢 什么时候需要封装成函数?我感觉封装成函数要简单一点 那为什么还有很多人写的分页类 mysql类呢 直接封装函数不好吗?
用dll编写的窗口,在调用时,发现窗口的快捷键失效.
进入窗口时,可以正常输入,但是使用 Tab Ctrl+C Ctrl+V时总是不好使.rn有没有弟兄知道这是怎么回事?
请教一个DLL调用时参数的问题
有一个第三方的dll文件File.dll, 里面有一个函数,提供者提供了如下信息rnrnint DecompressToStrEx(char *szFile, char *pOutBuffer, int *pOutBufferSize);rn参数rn szFile : 要解压缩的文件路径、名称;rn pOutBuffer : 接收输出解压数据的内存指针;rn pOutBufferSize: 整数指针,指向的值为这块输出内存的大小。rnrn问题来了,我在vb.net里面调用它的时候,我dllimport的时候,应该如何里面的参数进行定义rn _rnPrivate Shared Function DecompressToStrEx(szFile as string,pOutBuff as string,pOutBufferSize as integer) As integerrn End Functionrn这样不行啊?rnrn应该怎么改呢?
DLL调用时参数匹配问题
..., int *numOfRecord, int *numOfRetRecord) 这是函数原型的写法 Crn我调用的时候声明如下: ..., numOfRecord, numOfRetRecord:^integer) : boolean;...rn编译却总不能通过 : [Error] Unit1.pas(36): Identifier expected but '^' foundrn觉得我写的写法没错啊 可是。。。
相关热词 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天 c#字典序排序 c# 截屏取色 c#中的哪些属于托管机制