C# 动态链接库和异步机制

lulu23260 2014-03-02 07:21:30
首先菜鸟,请轻喷。
去年11月首次接触C#,就跟项目,是windows窗体程序,内部有几个窗体,还有各种子线程、全局变量之类一堆。。一直调试实现功能,没想要做成DLL的事

现在要我做出一个DLL,还要什么异步消息机制,还要这周四前…………
自己周末整个一下,也仅仅是:用类库建个项目,里面两个函数,别的项目里调用一下DLL中的函数,其他的不会
疑惑:
(1)一个窗体程序能做成类库吗?怎么实现,怎么调用?
(2)客户不要控件和窗体,我是不是就得从已有项目里摘出各种函数、变量等,做个类库项目?那里面的很多全局变量,以及相互有联系的函数,都怎么办
(3)我想快速学会,有没有例程????
(4)异步机制怎么回事?每次函数执行通过一个带参数 的消息通知主程序,这都怎么回事,,有没推荐的文档或例程???

从没整过DLL,现在被狂催,完全不会,
教我几手吧!!
...全文
409 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jwh2004 2014-03-06
  • 打赏
  • 举报
回复
好像需要异步回调吧,不过这个我也不会。 要想最快的速度完成任务,也可以用UDP把执行的结果发回给主程序,这个就很简单了
lulu23260 2014-03-06
  • 打赏
  • 举报
回复
引用 11 楼 jwh2004 的回复:
UDP
这是类似TCP的那个东东么?也不会。 为了做客户接口,还是按照发送消息的方式来吧,
lulu23260 2014-03-04
  • 打赏
  • 举报
回复
引用 7 楼 caozhy 的回复:
(1)一个窗体程序能做成类库吗?怎么实现,怎么调用? 可以。和你做窗体程序一样。不过dll项目默认没有引用System.Windows.Forms,你需要加上。 调用就是引用,然后和在一个程序中的调用一样。 (2)客户不要控件和窗体,我是不是就得从已有项目里摘出各种函数、变量等,做个类库项目?那里面的很多全局变量,以及相互有联系的函数,都怎么办 那是你设计的问题。我们反复强调,窗体程序不要使用全局函数之类的传值。代码之间要避免耦合。可是很多人不屑于顾,只要代码能运行什么都不在乎。那只能活该。 (3)我想快速学会,有没有例程???? 快速不了,去吃点补脑药好了。例子Google都能找到,关键是学会用Google。找切合你问题的内容,而不是泛泛地看“例程”。 (4)异步机制怎么回事?每次函数执行通过一个带参数 的消息通知主程序,这都怎么回事,,有没推荐的文档或例程??? 简单来说,同步就是调用完成执行下面的代码。异步就是触发调用,然后继续执行下面的代码。调用的代码什么时候执行完不知道。系统介绍异步编程的概念和最佳实践需要一本书的篇幅。看一些零碎的东西只能让你编写具有隐患的代码,不推荐你在不打算仔细学习的情况下乱搞一通。
我尽量拖两天,好好补一下,该上阵还是得上阵,自己技术真的太差了…………
lulu23260 2014-03-04
  • 打赏
  • 举报
回复
引用 9 楼 tcmakebest 的回复:
类库就是把一些代码写到单独的 DLL 文件中,用的时候一般就是放到同一个目录中。 方便代码重复利用和修改,只是调用的时候多几个步骤。
00恩,谢谢, 大约知道了这个,就是对异步调用里使用的委托和事件、消息等太不清楚了,自己一点点磨呢,还是用的太少啊
tcmakebest 2014-03-04
  • 打赏
  • 举报
回复
类库就是把一些代码写到单独的 DLL 文件中,用的时候一般就是放到同一个目录中。 方便代码重复利用和修改,只是调用的时候多几个步骤。
lulu23260 2014-03-03
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
可以。你创建工程时选择“windows类库”而不是“windows应用程序”就行了。或者,也可以直接修改工程的属性来设置。 如果你都“跟项目”开发半年了,还没有概念说能不能生成DLL,那么更应该检讨的是你的领导,这种领导怎么培训的员工啊?
自己单位项目组只有自己做上位机,各种自己解决问题,这是个外协的项目,自己领导不管,全是自学,哎,吃百家饭成长的, 自己试了整了,会了,呵呵,还顺便学会了,自己做控件, 虽然都是很简单的东西。 DLL里函数异步返回,通过一个带参数的返回消息解析函数执行情况,,,,能帮我稍微普及下么??
threenewbee 2014-03-03
  • 打赏
  • 举报
回复
(1)一个窗体程序能做成类库吗?怎么实现,怎么调用? 可以。和你做窗体程序一样。不过dll项目默认没有引用System.Windows.Forms,你需要加上。 调用就是引用,然后和在一个程序中的调用一样。 (2)客户不要控件和窗体,我是不是就得从已有项目里摘出各种函数、变量等,做个类库项目?那里面的很多全局变量,以及相互有联系的函数,都怎么办 那是你设计的问题。我们反复强调,窗体程序不要使用全局函数之类的传值。代码之间要避免耦合。可是很多人不屑于顾,只要代码能运行什么都不在乎。那只能活该。 (3)我想快速学会,有没有例程???? 快速不了,去吃点补脑药好了。例子Google都能找到,关键是学会用Google。找切合你问题的内容,而不是泛泛地看“例程”。 (4)异步机制怎么回事?每次函数执行通过一个带参数 的消息通知主程序,这都怎么回事,,有没推荐的文档或例程??? 简单来说,同步就是调用完成执行下面的代码。异步就是触发调用,然后继续执行下面的代码。调用的代码什么时候执行完不知道。系统介绍异步编程的概念和最佳实践需要一本书的篇幅。看一些零碎的东西只能让你编写具有隐患的代码,不推荐你在不打算仔细学习的情况下乱搞一通。
本拉灯 2014-03-03
  • 打赏
  • 举报
回复
请学习事件

{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            string strData = GetData();
        }
 
        private string GetData()
        {
 
            Client client = new Client();
            client.ReciveDataSuccess += client_ReciveDataSuccess;
            client.Do();    //需要的数据是从这个方法完成之后的ReciveDataSuccess事件参数里取 求解怎么取
        }
 
        void client_ReciveDataSuccess(string strData)
        {
            //需要的数据就是strData
        }
 
    }
 
    public class Client
    {
        public Client() { }
 
        public delegate void ReciveDataSuccessDelegate(string strData);
        public event ReciveDataSuccessDelegate ReciveDataSuccess;
 
        public void Do()
        {
            string aa = "aa";
            if (ReciveDataSuccess != null)
            {
                ReciveDataSuccess(aa);
            }
        }
    }


lulu23260 2014-03-03
  • 打赏
  • 举报
回复
自己 看了今天晚上半晚上,知道,异步机制是通过代理实现,自己也做了小例子,试了试, 但是这个::动态库中的函数 的执行结果通过一个返回消息(带参数),通知主程序,这怎么做呢??怎么让一个函数返回消息呢,并且消息参数携带函数执行的一些信息。。。
  • 打赏
  • 举报
回复
所谓调用,就是在一个windows应用程序项目中引用你的类库工程,然后 new 命名空间.窗体form() 这时候这个类型应该是你的类库工程中的,而不是windows应用程序中的。
  • 打赏
  • 举报
回复
引用 楼主 lulu23260 的回复:
首先菜鸟,请轻喷。 去年11月首次接触C#,就跟项目,是windows窗体程序,内部有几个窗体,还有各种子线程、全局变量之类一堆。。一直调试实现功能,没想要做成DLL的事 现在要我做出一个DLL,还要什么异步消息机制,还要这周四前………… 自己周末整个一下,也仅仅是:用类库建个项目,里面两个函数,别的项目里调用一下DLL中的函数,其他的不会 疑惑: (1)一个窗体程序能做成类库吗?怎么实现,怎么调用?
可以。你创建工程时选择“windows类库”而不是“windows应用程序”就行了。或者,也可以直接修改工程的属性来设置。 如果你都“跟项目”开发半年了,还没有概念说能不能生成DLL,那么更应该检讨的是你的领导,这种领导怎么培训的员工啊?

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧