vb.net gdi 画布使用了皮肤,如何布暑发布?已在发布的程序里已包含了皮肤dll,但生成的setup安装后

DLL小问题【vb吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:109,412贴子:
DLL小问题收藏
VB生的的DLL会比,C++生成的DLL运算速度慢吗?如果一样,我就不学VC++了,学多了就易乱。。。
这。。。没人回答吗?我想应该不会快吧
DLL文件结构不是一样的吗 还有区别吗
一个入口点 一个出口点 没有区别吧
VB写的DLL就是容易出BUG,我试过让String和Long以Any的传给一个过程,结时背锯了。过程是这样的Function LoadFile(Byval lpFile as Variant)因为是变体支持任何类型这样我就可以传入数组头,或者文件名,就像sndPlaySound一样即可以传入Res了结果。。。生成DLL这后我这样调用Function LoadFile(Byval lpFile as Any)我传什么类型的都出错
传long吧,就是指针了。。
'这个是在模块中Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)Public Function LoadFile(ByVal lpFile$)Dim FileHeard As LongDim Fileaddress As LongDim FileCount As Long If Val(lpFile) = 0 Then MsgBox lpFile Else FileHeard = Val(FileHeard) CopyMemory Fileaddress, ByVal FileHeard, 4 CopyMemory FileCount, ByVal Fileaddress + 16, 2 MsgBox CStr(FileCount) End If End Function我在VB中测试一下就被T出来了Private Declare Function VarPtrArray Lib "msvbvm60.dll" Alias "VarPtr" (Var() As Any) As Long Private Sub Form_Load() Dim TempData() As Byte ReDim TempData(10) LoadFile VarPtrArray(TempData)
我试过在声明时在Declare中用Long结果还是被T了出来光用long的话,我不知道传入String文件名的长度。
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)Public Function LoadFile(ByVal lpFile&)Dim FileHeard As LongDim Fileaddress As LongDim FileCount As Long If Val(lpFile) = 0 Then MsgBox lpFile Else FileHeard = Val(lpFile) CopyMemory Fileaddress, ByVal FileHeard, 4 CopyMemory FileCount, ByVal Fileaddress + 16, 2 MsgBox CStr(FileCount) End If End Function我在VB中测试一下就被T出来了Private Declare Function VarPtrArray Lib "msvbvm60.dll" Alias "VarPtr" (Var() As Any) As Long Private Sub Form_Load() Dim TempData() As Byte ReDim TempData(10) LoadFile VarPtrArray(TempData) End Sub修改了一下,这次又提示我约定错误。。。
通用软件不合适,定做软件太昂贵,自己用vb.net开发太难,何不试试FoxTable?
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)Private Sub Command1_Click()
Dim StrBuff() As Byte
Dim StrBuffLen As Long
StrBuff = StrConv("sunshinebean", vbFromUnicode)
GetStr VarPtr(StrBuff(0)), UBound(StrBuff) + 1End Sub
Private Function GetStr(ByVal StrAdd As Long, ByVal BuffLen As Long)
Dim StrBuff() As Byte
ReDim StrBuff(BuffLen - 1)
CopyMemory ByVal VarPtr(StrBuff(0)), ByVal StrAdd, BuffLen
MsgBox StrConv(StrBuff, vbUnicode)End Function这样玩
不会,定下
如果真没办法我就只能这么做了,我本来就是想简化一下输入参数的,现在看来已经是不可能了。。。
少个参数也可以啊...你字符串比如最大是1024字节的就redim 1023一下事后再把chr(0)进行replace..这样也一样拉
那我怎么知道传进去的是String还是Byte呢?看来你很喜欢用Replace查找字符串,你有没有发现在一个DLL模块中调用LoadPicture会被无情的T出来?我是不赶用了。我用的别的方法。
传2个参数吧,一个是数据指针,一个是数据长度。那些系统的api都这么干的。要不然传type也行。
type有点麻烦,就一个LoadFile还要With一个Type,单纯的String和Byte都很好办,就是即可以传String也可以传Byte地址(Long)就比较麻烦
那就另外再加个参数,指明参数的类型喽。。
我方弃了,我写了两个,一个专门装载Res(Byte)一个专门装载String,这样似乎更简单然后共用一个过程
登录百度帐号旧闻、重复
内容质量差
程序人生 | 我的漫漫程序人生路(真诚的长文,慎点)
作者:张龙(风中叶)
不知不觉中进入计算机行业已有几个年头了,回首往事依然历历在目。今天我把我这几年的学习经历,体会写出来,与大家一起分享,我想其中的一些经历大家也会遇到过,而且会与我产生共鸣,并且我希望自己的一些经验与教训能对大家有一定的启发作用。了解别人的经历也许会对自己有一定的帮助作用,那么我的目的也就达到了。
旧闻、重复
内容质量差
近年来,深度学习方法极大的推动了自然语言处理领域的发展。几乎在所有的 NLP 任务上我们都能看到深度学习技术的应用,并且在很多的任务上,深度学习方法的表现大大的超过了传统...
旧闻、重复
内容质量差
之前,我发过一篇文章,通俗地解释了梯度下降算法的数学原理和推导过程,推荐一看。链接如下:
为什么局部下降最快的方向就是梯度的负方向?
我们知道,梯度下降算法是利用梯度进行一阶优化,而今天我介绍的牛顿优化算法采用的是二阶优化。本文将重点讲解牛顿法的基本概念和推导过程,并将梯度下降与牛顿法做个比较。
1. 牛顿法求解方程的根
有时候,在方程比较复杂的情况下,使用一般方法求解它的根并不容易。...
旧闻、重复
内容质量差
新富文本编辑器的由来经过1个多月的开发,CSDN博客富文本编辑器终于要跟大家见面啦。目前线上使用的富文本编辑器版本为 xheditor,在之前《关于博客产品近期调整的说明及write站即将下线的公告 》中我们曾提到过这个计划,xheditor在过去很长一段时间里面为广告CSDN博客用户提供了丰富实用的富文本写作功能,但由于相关安全漏洞的问题,我们不得不将更换富文本编辑器的事情提上日程。新的富文本编...
旧闻、重复
内容质量差
—文章版权归原作者所有,转载仅供浏览,不用于任何商业用途,如有侵权请联系我们马上处理。精彩回顾
点蓝字即可
? 为什么一定要给孩...
旧闻、重复
内容质量差
本文作者Easy,程序员中的网红如果你是一个混迹微博的IT爱好者的话,可能对下面这个头像有印象。没错,这就是Easy!从2003年写下第一行PHP代码开始,编程就成为了他...
旧闻、重复
内容质量差
林鳞 编译整理量子位 出品 | 公众号 QbitAI又有新的开源库来了,英伟达出品,数量×2。正在举行的CVPR 2018大会上,英伟达开源了数据增强库NVIDIA DA...
旧闻、重复
内容质量差
最近,618的购物狂欢已经进入了收尾工作,小米没有例外,京东天猫双料冠军,稳居第一。根据安兔兔跑分网站公布的5月份,性价比手机排行来看,好像没有金主小米太多的事儿~不知道...
旧闻、重复
内容质量差
内容来源:本文转载自战略合作伙伴
51CTO技术栈(微信号:blog51cto)责编 | 王友强 第
篇技术好文:8400字 | 18分钟阅读胡捷在国内曾经...
旧闻、重复
内容质量差
旧闻、重复
内容质量差
我们来看一组最新的数据: 2018年最新数据:python、大数据、人工智能从业者工资 为什么人工智能行业的工资那么高? 无论是科研院所,商业巨头还是初创企业,各行各业...
旧闻、重复
内容质量差
以技术人员为例,技术人员典型的发展路径基本上都是下面的这个模式:1)0 ~ 1 年:菜鸟,需要别人手把手来教2)1 ~ 3 年:初级,需要别人带你做3)3 ~ 5 年:高...
旧闻、重复
内容质量差
源 | 程序师
文 | Cxihu1.计算机科学之父图灵、香农、冯诺依曼等人图灵:计算机科学之父,人工智能之父。2.计算机科学各领域之父AT&T贝尔实验室里...
旧闻、重复
内容质量差
点击上方“互扯程序”,选择“置顶公众号”优秀文章,第一时间送达!KSKnowledge Sharing知识分享
现在是资源共享的时代,同样也是知识分享的时代,如果你...
旧闻、重复
内容质量差
一个 5 年老员工:要求加薪 500 元遭拒,老板转头月薪 1 万招新人!结果,朋友出去转了一圈,找了个工资多 4000 的工作,立马就跳槽了。剩下 3 个人不干了,纷纷出去找工作,也找到了比之前多 4000 的工作,准备离职。老板一下子慌了,连忙答应加薪,每人涨 4000,但只有一个人愿意留下来,其余 2 个人都走了。没办法,老板只能再请两个新人回来,估计价格也不低。我朋友和我说起这事时,一脸幸...
旧闻、重复
内容质量差
1  如果你问我,十几年的学习生涯最刻骨铭心的是什么?答案只有一个:高考。  我上的高中是我们那边的重点学校。当年,我在的理科班本科上线率达到98%,也就是说,一个班级只...
旧闻、重复
内容质量差
英文:JeffHeaton
译文: 云+社区/白加黑大人https://cloud.tencent.com/developer/article/1035890基本介绍在...
旧闻、重复
内容质量差
今天小米正式官宣,小米平板4就要6月25号登场了,还捎带了一部红米6 Pro!额,为啥会携带红米新机,那你需要去了解一下小米的战术啦!毕竟出货量要第一,肯定得不断地推出千...
旧闻、重复
内容质量差
来自:51CTO技术栈(微信号:blog51cto)综合来源来源:《西二旗程序员写给孩子的一封信》一文作者 hubery_class,转载自13号线微信公众号,其它素材来...
旧闻、重复
内容质量差
为什么有的人能学好 Python 而有的人就学不好?
想请问大家扪心自问一些之前有自学过 Python 么?如果学过那大家思考一下为...
旧闻、重复
内容质量差
计算机视觉最具影响力的学术会议之一的 CVPR 将于 2018 年 6 月 18 日 - 22 日在美国盐湖城召开举行。据 CVPR 官网显示,今年大会有超过 3300 ...
刚刚阅读在这里,点击刷新
刚刚阅读在这里,点击刷新
这些年来,中国互联网很少有像微信这样影响巨大的产品。
王学宽 · 算法工程师
即便作为兴趣爱好,无人价值技术要如何入门呢?
《程序员》杂志
我们请来 AI 技术一线的专家,请他们从实践的角度来解析 AI 领域各技术岗位的合格工程师都是怎样炼成的。
这个栏目将帮助大家筛选出人工智能和机器学习领域,每年各大顶级会议和研讨班上有意思的论文,解读出论文的核心思想,为精读提供阅读指导。
本期我们梳理了2017年区块链发展现状,从关键技术原理与实际应用出发,带你深入浅出探索区块链技术的方方面面。
16个主题,200余篇文章,180万字——不容错过的前沿技术、工具尽在其中,亲历者领域案例剖析
成都-光谷创业咖啡(长发街55号3-4)VB.NET系统皮肤的加载
[问题点数:20分,结帖人wwb198686]
本版专家分:5
结帖率 87.5%
CSDN今日推荐
本版专家分:10625
2007年8月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第一2006年6月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第一2006年5月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第一
本版专家分:27154
本版专家分:816296
2012年 荣获名人称号
2010年 总版技术专家分年内排行榜第一2009年 总版技术专家分年内排行榜第一
2011年 总版技术专家分年内排行榜第二
2011年3月 总版技术专家分月排行榜第一2011年2月 总版技术专家分月排行榜第一2011年1月 总版技术专家分月排行榜第一2010年12月 总版技术专家分月排行榜第一2010年11月 总版技术专家分月排行榜第一2010年10月 总版技术专家分月排行榜第一2010年9月 总版技术专家分月排行榜第一2010年8月 总版技术专家分月排行榜第一2010年7月 总版技术专家分月排行榜第一2010年6月 总版技术专家分月排行榜第一2010年5月 总版技术专家分月排行榜第一2010年3月 总版技术专家分月排行榜第一2010年4月 总版技术专家分月排行榜第一2010年2月 总版技术专家分月排行榜第一2010年1月 总版技术专家分月排行榜第一2009年12月 总版技术专家分月排行榜第一2009年11月 总版技术专家分月排行榜第一2009年10月 总版技术专家分月排行榜第一2009年8月 总版技术专家分月排行榜第一2009年7月 总版技术专家分月排行榜第一2009年6月 总版技术专家分月排行榜第一
本版专家分:5
结帖率 87.5%
本版专家分:125
本版专家分:121
结帖率 71.43%
本版专家分:5
结帖率 87.5%
本版专家分:5
结帖率 87.5%
本版专家分:121
结帖率 71.43%
本版专家分:5
结帖率 87.5%
本版专家分:5
结帖率 87.5%
本版专家分:121
结帖率 71.43%
本版专家分:5
结帖率 87.5%
本版专家分:43
本版专家分:133
本版专家分:121
结帖率 71.43%
本版专家分:5
结帖率 87.5%
本版专家分:20
结帖率 97.56%
本版专家分:121
结帖率 71.43%
本版专家分:0
本版专家分:891
匿名用户不能发表回复!|FAQs: 如何在VB.NET应用程序中调用/使用VB6 dll?
为了帮助大家更好地学习 Visual Basic技术,微软论坛技术支持团队编辑了一些列的 &Visual Basic 常见问题及解答& 精华帖。
本帖的主题是:如何在VB.NET应用程序中调用/使用VB6 dll?
如果您觉得这个帖子对您的学习、工作有所帮助,请再把这个帖子分享给你的同学、同事和朋友。
如果您想阅读更多的 &Visual Basic 常见问题及解答&,请打开索引页面:
如果您对我们的论坛在线支持服务有任何的意见或建议,请通过告诉我们。
立刻免费下载&
第1步:在Visual
Basic 6种创建ActiveX DLL应用程序。给它一个包含可以在Visual
Basic .NET应用程序中调用的public方法的public类。将项目编译成DLL文件。
这篇文章提供了一个演练和一个示例项目:
这个示例构建了一个名为VB6Project的项目。它包含一个名为MyVB6Class的类,类中包含了一个名为VB6SayHi的public子方法和一个名为VB6ReturnHi
的public函数。
第2步:在目标机器上注册这个。
执行下面语句:
regsvr32 VB6Project.dll
在VB.NET项目中添加对这个VB6
dll 的引用。
打开一个Visual Basic .NET
选择&项目&菜单
-& 添加引用
点击COM标签
-& 找到这个DLL或者点击&浏览&选择这个dll文件(例如VB6Project.dll)。
.NET应用程序现在可以这样使用此DLL的public类了:
Dim vb6_class
New VB6Project.MyVB6Class
vb6_class.VB6SayHi()如果您对我们的论坛在线支持服务有任何的意见或建议,请通过告诉我们。
立刻免费下载&
已标记为答案如何美化你的.net 应用程序 (皮肤使用)
利用.net技术能够快速开发出应用程序,但是如果应用微软的那一套技术,做出来的程序大多数程序员恐怕都会有一种千篇一律的感觉:按钮还是那个按钮(只是文字不同),文本框还是那个文本框, 下拉列表还是那个下拉列表........跟系统里的没有什么两样,不管程序怎么样,至少这个界面没什么新意。
诚然,目前也有不少第三方的控件,如Xceed Ultimate Suite、ComponentOne.Studio、Infragistics.NetAdvantage等等,使用这些控件大多需要再花一定时间去掌握这些控件的用法,而且有些做得不是很好,我曾经见过一个商业控件里面很多是画出来的,不能像VS.net自带的控件那样在IDE上灵活控制,现在给大家展示一个很简单的换皮肤控件,先不说别的,让大家看看效果:
看到上面的界面心动了吗?告诉大家,我用的都是VS2005的标准控件,实现换皮肤的功能也仅仅是数行代码而已,也就是说以前熟悉的控件还照常使用。
先介绍一下这套控件吧,这套控件仅有一个dll(IrisSkin2.dll)文件和一个skin文件夹,skin文件夹下共有22个子文件夹,每个子文件夹其实就是一套界面风格,也就是说我们可以使用22种不同风格。
实现给界面换皮肤有两种做法:(一)拷贝法,即使将界面资源夹下所有的文件拷贝到.exe文件所在的位置,然后在程序种通过skinEngine1.SkinFile=fileName(fileName是皮肤文件.ssk文件的位置)来设定界面皮肤,这种做法通常是我们需要在Debug文件夹和Release文件各保存一套皮肤文件,发布程序的时候也需要附带这些文件。(二)嵌入资源法,本文就是采用这种办法实现的,这样做的好处是发布程序时(不管是Debug版本或Release版本)时vs自动将皮肤文件编译进exe文件中,减少程序发布时文件的个数,而且也不用管程序与皮肤文件的相对位置。
首先打开VS工具箱,添加皮肤控件组件,如下图:
然后在出现的“选择工具箱项”中点击“浏览”按钮,然后找到IrisSkin2.dll文件,然后“确定”,关闭对话窗口之后,皮肤控件组件就会出现在你的工具箱上了(具体出现在哪个分组跟你添加时添加哪个组有关),如下图:
(我不小心加到打印分组去了,大家不要骂我:P)
好了,现在可以编写程序测试了,做一个简单的窗体吧,界面上的控件如上图所示,然后将皮肤组件拖拽到界面上,之后需要把程序所需要的皮肤资源文件添加进来,这里我是采用添加资源的办法。
步骤如下:
(一)在WinForm工程上右键单击“属性”,在出现的界面中点“资源”选项卡,把所需的皮肤资源文件添加进来(通过“添加现有文件”命令添加皮肤文件),如下图:
注意如果该皮肤文件夹下除了*.ssk文件之外,还包含有其它图片文件,建议将它们也作为资源添加到项目中。添加完成之后,我们就可以在代码中通过Properties.Resources.文件名来获取这些文件的内容了,通过这个方法返回的是文件内容的二进制数据(byte[]),而skinEngine1.SkinStream需要的是一个Stream对象,通过msdn我们可以以这个二进制数据构建一个Stream对象(new MemoryStream(byte[] bytes)),然后赋值给皮肤组件的SkinStream属性,如果需要换皮肤,重新构建一个皮肤资源文件的Stream对象,然后重新赋值就行了。
界面控件布局代码很简单,就不粘贴了,主要把后台代码放在这里吧(其实也很简单,不过需要注意,因为使用了MemoryStream对象,就需要在程序引用程序集部分添加对IO方面的引用:using System.IO;)
代码如下:
using Susing System.Collections.Gusing System.ComponentMusing System.Dusing System.Dusing System.Tusing System.IO;using System.Windows.Fnamespace SkinForm
/// 说明:这是一个简单的WinForm应用程序,用来展示如何使用换皮肤控件来实现我们需要的漂亮界面,代码很简单。
/// 作者:周公
/// 时间:
/// 首发地址:http://blog.csdn.net/zhoufoxcn
&/summary&
class MainForm : Form
private MemoryStream memoryS
public MainForm()
InitializeComponent();
SetSkinFile(Properties.Resources.MacOS);
void btnOK_Click(object sender, EventArgs e)
if (rbMacOS.Checked)
SetSkinFile(Properties.Resources.MacOS);
if (rbMP10.Checked)
SetSkinFile(Properties.Resources.MP101);
if (rbMSN.Checked)
SetSkinFile(Properties.Resources.MSN1);
if (rbPage.Checked)
SetSkinFile(Properties.Resources.Page);
if (rbRealOne.Checked)
SetSkinFile(Properties.Resources.RealOne1);
if (rbVista1.Checked)
SetSkinFile(Properties.Resources.vista1_green1);
if (rbVista2.Checked)
SetSkinFile(Properties.Resources.Vista2_color11);
SetSkinFile(Properties.Resources.XPBlue1);
void SetSkinFile(byte[] bytes)
memoryStream=new MemoryStream(bytes);
//设置皮肤可以通过两种方式,一种是指定皮肤文件的位置,
//如skinEngine1.SkinFile=fileName(fileName是皮肤文件.ssk文件的位置)
//一种是指定皮肤文件的文件流,如本程序所示
skinEngine1.SkinStream = memoryS
程序界面效果如上面所示。
本文提到的皮肤组件可以到:下载。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!}

我要回帖

更多关于 vb 发布 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信