.--------------------------------------------------------------------.
| Session Start: 2005年8月22日                                          |
| Participants:                                                      |
|    我 ([email protected])                                |
|    总监 (总监的msn帐号)                          |
.--------------------------------------------------------------------.
[14:43] 我: Hello
[14:43] 总监(: :)
[14:44] 我: 我在将上午那个class做成dll的时候,有10几个警告
        warning C4273: 'CCopyDir::CCopyDir' : inconsistent dll
        linkage.  dllexport assumed.
[14:45] 总监(: member function 要直接在 DLL open, 寫法要確認...
[14:45] 总监(: 不可以直接 open
[14:45] 我: 直接在Dll open是什么意思?
[14:46] 总监(: 一般 C 的 function 只要宣告 export 就可以給外面的人 call
[14:46] 总监(: 正常 class member function 必須經過 new 才能出現
[14:47] 总监(: 所以理論上不可以直接 open..
[14:47] 总监(: 你去找找資料吧! 
[14:47] 总监(: 也許朝 static function  的方向看看
[14:47] 我: 哦
        好的,谢谢
.--------------------------------------------------------------------.
| Session Start: 2005年8月22日                                          |
| Participants:                                                      |
|    我 ([email protected])                                |
|    总监 (总监的msn帐号)                          |
.--------------------------------------------------------------------.
[15:52] 总监(: 是否解決了呢?
[15:58] 我: 我还在看
[15:59] 我: 需要*.lib的是静态链接吗?
[15:59] 总监(: 不需要....DLL 的 function 怎麼寫, 都不需要 static link
[16:01] 我: static_cast 
[16:03] 总监(: 這個不是 static link
[16:03] 总监(: 我建議你, 先以 export C 的方式先把 API open 出來
[16:03] 总监(: 先不要做 C++ 的方式 open API
[16:04] 我: 好的
[16:04] 我: 谢谢
[16:05] 总监(: C++ 的部分, 有時間再研究清楚
[16:05] 我: http://www.codeproject.com/dll/RegDLL.asp
        我刚才在看这个
[16:05] 总监(: 語法都還搞不清楚的情況下, 會很花時間
[16:07] 我: 我先的那个必须先
        #pragma comment ...lib
        但以前看到的是LoadLibrary,然后FreeLibrary
[16:08] 总监(: 這樣寫也沒錯
[16:08] 总监(: 但 DLL 也可以不這樣寫
[16:10] 总监(: DLL 調用方式就是兩種, 一種是 Static link,  另一種為dynamic
        link
[16:11] 总监(: static link 只要有缺, .exe 一run 就會檢查
[16:11] 总监(: 並自動顯示訊息
[16:11] 总监(: 不好用.
[16:11] 总监(: dynamic link, 需要使用時才 link 進來
[16:11] 总监(: 雖然寫法麻煩一點, 但彈性高
[16:12] 总监(: static_cast 與此事無關
[16:12] 总监(: 純粹只是 C++ 型態轉換語法
[16:12] 总监(: 所以, 你應該先做出 C 版
[16:12] 总监(: C++ 的部分慢慢再來研究
[16:12] 总监(: 此 Project 有時間壓力, 不要這樣做
[16:13] 我: 哦好的
[16:16] 总监(: 盡快
[16:16] 总监(: 我每日會看進度
[16:16] 我: 好的
[16:17] 总监(: 程序開發, 著重程序結構思考
[16:18] 总监(: 語言只是個工具
[16:18] 总监(: 你若連 C 都寫不好
[16:18] 总监(: 即使用 C++, Java, C# 也寫不出好程序
[16:18] 总监(: 應回歸現實...將 C 寫好
[16:19] 总监(: 別擔心 Java 不會或 C++ 不會
[16:19] 总监(: 你的腦筋只要到了一定的水平
[16:19] 总监(: 這些東西自然輕而易舉
[16:20] 我: 好的
        了解
[16:22] 总监(: 認真點...
[16:22] 我: ok
[16:23] 总监(: 也進來公司一年了, 要做出點成績給大家看看.
[16:23] 我: 知道

解决方案 »

  1.   

    我问他如何将class做到dll中
    然后的一番对话我去年7月刚毕业进这家公司的。因为主要是做电子词典。对一些高级的东西用得不是很多,如DLL、多线程、数据库等。
    只是对SDK有了一点了解。
      

  2.   

    static_cast 是向下转型的类型安全检查
    不过听你们谈话,我觉得你们总监的 UML架构建模与设计模式水平 一般
      

  3.   

    To:xqk(夏乾坤) ( )我们做什么东西都是没有文档的,只有少量的什么界面示意图。
    一般以主管口述为准。
      

  4.   

    因为他只强调结果!与代码的进度在设计模式中,如果项目经理只追求的是代码进度和开发速度的话,那么这就是软件行业中的悲哀。编写出来的软件就是一坨shit,哈哈除了再说明一下楼主的水平很烂以外,别的就不说了免得伤楼主自尊
      

  5.   

    To:xqk(夏乾坤)有话就直说,何必吞吞吐吐?
    若不便明说,PM也行!我自己也感觉水平烂!所以希望有人能指点!
      

  6.   

    C写好了C++ 与 JAVA不一定好.C是结构化设计的.C++与JAVA是面向对象的.特别是JAVA....
      

  7.   

    To:xqk(夏乾坤)PM = Private Message 短消息不会就要学!
    学好了好跳槽,也能更好地体会的编程的乐趣和作用!
      

  8.   

    dll ,够架起来是很简单,但是要把你的class写到dll中,入口函数很重要.
    {导出,导入函数,都要写好.}
    基本的格式,要懂
      

  9.   

    static link 只要有缺, .exe 一run 就會檢查static link 只要有缺,连exe都出不来,还一run呢!
      

  10.   

    短消息应该是SMS啊,啥时候变成PM了
      

  11.   

    一年了连dll都搞不定....郁闷啊郁闷...
      

  12.   

    回复人: xqk(夏乾坤) ( ) 信誉:95  2005-08-23 14:03:00  得分: 0  
     
     
       因为他只强调结果!与代码的进度在设计模式中,如果项目经理只追求的是代码进度和开发速度的话,那么这就是软件行业中的悲哀。编写出来的软件就是一坨shit,哈哈除了再说明一下楼主的水平很烂以外,别的就不说了免得伤楼主自尊
      
     
    说真的,我觉得xqk(夏乾坤)也很shit....ohoh..玩笑,玩笑
      

  13.   

    PM = Private Message 短消息================================
    我faint, 这也是PM啊?PM = Project Manager 。短消息: Small Message.Private Message: 个人消息
      

  14.   

    PM:下午时   haha........post message togot private message英文不好 #^#&$(*$%^!@
      

  15.   

    to xqk(夏乾坤):
    你成不了一个好的leader,从你说话的风格知道你作为一个leader必失人心。
    leader还需要亲和力. 实话实说哈...
      

  16.   

    to 楼主:建议你找一个比较固定的可以咨询的有经验的同事作搭档(当然,问之前一定要自己下够功夫,而不是沾着就问),楼主的基本功有待提高,目前你的水平通过MSN问问题交流是困难的(你目前的阶段会遇到太多的细节问题)。多花点时间找些基础的好书看看(譬如windows程序设计)。
        你这个阶段每个人都经历过,熬过去就好了,再辛苦个一年半载的,翻过这座山以后,你会发现山那边的世界其实平坦而美丽
      

  17.   

    xqk(夏乾坤) :
    好像很NB的样子?
      

  18.   

    我觉得楼主应该多逛逛CSDN,多用csdn的论坛搜索、GOOGLE,在CSDN的VC区里搜一吓旧贴,有很多人气旺的VC网站,里面对怎样在把类写在dll都有介绍,以及很多其他的知识,我觉得只要善用网络上的资源,很多问题都是可以自己解决的`:)
      

  19.   

    To:nlstone(天外流星) 
    前面我说过,我们公司搞开发的才5个人,只有一个比我早来2个月,也是2004年毕业生。另外,我们(大陆员工)主要做些小工具,主要用C开发,很少用到诸如Dll、线程等知识。实话说,这是我第二次还是第三次用Dll吧(我看《Windows程序设计》动态链接库那一章时动了下手)。《Windows程序设计》我看过大部分(下册前面的有一部分没看),但很显然,光看不练是不行的,看了不等于会了,由于工作性质的关系,我们只用到了里面很少一部分的东西,所以,经验、能力等的确是很欠缺。
    最近我在看《C++程序设计语言》,实话实说,里面有些东西我不是很明白。我看到的将类写在dll的例子用到了虚基类,我对这个不是很了解,所以没有继续看那个例子。其实将C函数写到Dll里,我还是会的。To:CrazyAzreal(卖血上网) 
    我看到一个将类写在Dll的例子,但同时要在程序中加上一句#pragma comment(...)。但我以前看到的是LoadLibrary,接着得到函数指针,最后再FreeLibrary的。所以觉得有点奇怪。
    若你有类似的例子,不妨将网址发给我。不胜感激!!!
      

  20.   

    PS:static_cast,我在C++的书中看到过,但我的确忘了。
       我们总监的话,我有一些也看不明白。
      

  21.   

    实话实说,里面有些东西我不是很明白。我看到的将类写在dll的例子用到了虚基类,我对这个不是很了解,
    《Effective C++》 ,条款十四: 尽量让每个基类都有一个虚析构函数
    析构函数和虚析构函数有什么区别呢?:当我们建立了一个基类Base 和 子类 Sub 时:
    如果基类Base 的析构函数是非虚的,那么Sub类的析构函数默认行为是《函数覆盖》
    否则,如果基类Base的析构函数是虚函数,那么Sub类的析构函数是函数重载:既然是覆盖和重载的区别,那么它们实现的时候有什么区别呢?这个有些C++经验的人都能想到
    当我们将Sub类向上转型成Base的时候:
    Base b = (Base)sub;
    //如果在Sub类的构造函数中申请了内存:
    那么当我们销毁这个 Base 的时候(其实是指向Sub的指针),由于虚函数的原理,如果基类的析构函数是虚函数:那么将会调用子类的析构函数,如果基类的函数不是虚函数,那么调用的是父类的析构函数。调用父类的析构函数的后果呢?当然是:如果子类的析构函数里有释放内存的操作,那么将会造成内存泄漏,后果很严重,而且问题很隐蔽。所以正如《Effective C++》 条款十四所言:尽量让每个基类都有一个虚析构函数
     《Effective C++》,一本绝世的好书,看过的人都说好,《Effective C++》,今天你看了没有?
      

  22.   

    啊,对不起大家,看错了我刚才,没仔细看,就胡乱回答了,还以为是基类的虚析构函数呢其实楼主问的 虚基类 是指接口 (implement) 的概念,用来说明该类是抽象的,不能被实例化
    所以只能被继承...
      

  23.   

    楼主的基本功有待提高,技术总监都快
    成VC HELP DISK 了。也不奇怪,DLL 这样重要的东西,许多书是一带而过。
      

  24.   

    说句公道话,那总监的水平不错,技术拿捏得分寸刚好,沟通技巧也不错。
    不要为了技术而技术,为了C++而C++,为了OOP而OOP,为了项目管理而项目管理。
    搞技术有点豪情壮志是好的,但不要目空一切,以为人家PM、CTO都是吃白饭的。
    最好的技术就是用最短的时间出最好的产品,当然时间和质量之间需要个平衡,但这是PM、CTO决定的事情,工程师要虚心执行上级的决策,当不好一个兵,你还想当将军呢?
    还有句不好听的,按ming6424现在的水平,2K的M已算不错,不管跳到哪里,想要更高的M得为公司创造更多的Gain.
    同时,给大家一个薪酬参考,
    上海 WinCE驱动开发 开发语言 C (dll) 9K/月
    大家觉得有几个做C++/OOP的软件工程师能拿到?可见所用技术并不是关键。
    还是楼上的CTO说得好:“語言只是個工具”
      

  25.   

    To:Daric(DADA)
    不妨指点一下应该如何提高自己???
      

  26.   

    To:Daric(DADA)
    至于薪酬,我不表示同意,也许你不明白我们的具体情况。
    不过,我可以透露一下。去年七月和我一起来的还有2个同事,今年三月走了,炒公司。去年10月进来一个,未过试用期。今年7月进来一个,进来一个月炒公司。
    这些都是我们部门的。邮件1
    Dear all:
     
    各位到目前對******熟悉的程度還不夠深入和了解,
    導致於每個人手上所開發工程,一直進展不順利而無法完成.
    ***** 開發時間並不充裕,為加速大家在開發*****的環境適應,
    從今天開始4位軟体部的同事,晚上留下來加班到 9:00.
    晚上加班的時候,若在開發上有無法解決的問題,可以馬上找我一起處理.
    謝謝各位的配合.邮件2
    Dear all:
     
    51假日會到公司上班人員,安排如下:
    1.5/2(一) Ming, Arthur
    2.5/3(二) Ming, Arthur ,WenChang, Avril,小兵,清華不知你看了上面的,作何感想!我们都被要求学雷锋。今年五月下了一个最新文件,关于加班的,叫什么“特定工作项目管理实施条例”。若是主管要求加班,且得到总经理批准的,才能算加班。加班给补休,加一小时补休一小时,若要钱,对不起,年底结帐,每天按8小时算,每月按30天算。明白什么意思没?那之后,我们周一、周二、周四、周五每晚从六点半加班到九点半。
    以我为例
    平时 每天工作7.5小时 * 每月工作23.5天(每周工作5.5天) = 月薪2K 时薪约11.35元
    加班 1小时 * (7.5 / 8) * (23.5 / 30 )                      时薪约8.3元
    不要说加班费是平时的1.5倍,是平时的1.5倍的一半不到!!!
    今年四月走的那两个,他们四月的工资五月才发,还少了200元。
    实话实说,如果公司炒了我,我很高兴。我在这里实在找不到值得我留恋的地方。要钱没钱,要技术没技术(都是靠自己自学),还浪费我的青春。你可以不教我,但请不要占用我自学的时间。
      

  27.   

    我相信没有喜欢加班的员工(工作狂除外),也没有喜欢员工加班的上级(变态狂除外)。
    所有理智的上司,最希望的结果是:在正常上班的时间把我交给你的任务完成。
    我以前的公司有的人很少加班,不过任务都能完成,考核总是优;有的人总加班,但总是有些任务没完成,考核平平。这不公平吗?很公平。你坐烂屁股不出成绩,没人会欣赏你。当然,刻薄的公司是有的,如果你客观分析后认为责任不在你,那么好,炒公司吧,因为你到好的地方会更发光。“实话实说,如果公司炒了我,我很高兴。我在这里实在找不到值得我留恋的地方。”
    最好有点敬业精神,不想干,就走人,不走人,就好好干。“要钱没钱,要技术没技术(都是靠自己自学),还浪费我的青春。你可以不教我,但请不要占用我自学的时间。”
    前面你们总监提到的都是基本的技术,你都没有合格的,还说人家不教你?
    你自学的是啥呀?写电子词典软件,你学C++、OOP,你觉得适合吗?就算适合,必要吗?“不妨指点一下应该如何提高自己?”
    无论在什么公司,学习如果又快又好地完成公司交给的任务,自然就会获得提高。
      

  28.   

    To:Daric(DADA)也许有的情况你不了解。
    但我举个例子
    去年刚毕业进来的一个同事,那时(去年7月左右)代码写得不规范(一般我们都是按C教材里面写的,那里面的程序结构小,而且也有的写法本身就不规范),我们的一个主管,看到了,什么都不说,等到了那个同事转正,谈工资时,就说他代码写得不规范等等,以此来压他的工资。至于你说的敬业的问题,我认为有道理,虚心接受。实话实说,台湾人的确没怎么教我。
    去年10月左右(那时刚工作三个月左右,这之间我的任务是看另外一个大型程序的代码),台湾人要我和另外一个同事完成一个Tank游戏的程序,那时我懂的很少,也没有经验。我画那个图的时候,开始想用SRCCOPY然后再用SRCAND擦除原来的图,画来画去,就是擦不干净,问那个总监如何才能画图上去而不出现闪烁现象,他说贴上去,我试过来试过去就是不行,最后还是在CSDN上发贴求助才解决的。说实话,那时我自己很着急,本来没多大工作量的东西,我做了差不多两三周。如果有人指点一下,也许1-2天就可以做完(那时是我第一次用bitblt)今年1月开始,我用BCB做一个电脑和电子词典的Download程序。公司没有BCB,没办法,只能远程登陆使用,窗口很小,设计UI时不是很方便,更关键的是,那个BCB装在C盘,我的用户属性没有访问C盘的权利,每次改动代码后,都要关闭BCB才能重新编译。PC端有个文件数据库,是MS Access数据库,公司没人会ADO(ADOConnection,ADOQuery),又是我自己学,但结果做来做去,发现查询时没有问题,插入或删除记录就会提示“Access violation at address 1F487CAB in module 'msado15.dll'.Write of address 010DA020”错误,我又是没有人去问,这个问题又困扰了我很久,最后终于在网上发现类似错误,发现原来是因为装了SQL Server2000,有个dll的版本不对。其实这两个项目都不大,我却都做了2个月左右。我自己也觉得不好意思。真的希望有人能指点一下。你自学的是啥呀?写电子词典软件,你学C++、OOP,你觉得适合吗?就算适合,必要吗?
    我自学C++和《数据结构》有问题吗?不知怎么不适合了?也不知我自己利用休息时间看一下这方面的书,也没有必要吗?
    我想我在前面说得比较清楚了,我们公司是做电子词典软件的,但我不是。我们(大陆员工)只是做一些Windows下的小工具而已,我也知道C在底层比C++好。
    也许你说的是我学习没有学到什么东西,我的记忆力不好,而且,有一些学了现在也用不上(我前面说的那两个项目,会用到多线程、dll等一些相对高深一点的东西吗?不觉得)。“不妨指点一下应该如何提高自己?”
    无论在什么公司,学习如果又快又好地完成公司交给的任务,自然就会获得提高。
    在地上爬,可以前进;走路,也可以前进;跑步,也可以前进。
    我现在主要就是处理电子词典里面要用的资料,fopen,fwrite,fclose。就算有进步,也比较小吧?
    就不能说具体一点吗?不能利用空闲时间自学吗?
      

  29.   

    to ming6424,
    “也许有的情况你不了解”,是的,所以我说了“如果你客观分析后认为责任不在你,那么好,炒公司吧”
    自学当然是要的,而且当然是学得越多越,我本人既做网页设计,也写ASP.net, 既做数据库,也写驱动程序,所以,我绝不会反对你学习,我误解你的意思了,你也误解我的意思了。我的意思其实很简单:“不想干,就走人,不走人,就好好干”
    如果你的学习和工作会互相干扰,那证明你学无余力,要么辞职念书去,要么专心点工作。
    如果是公司压榨得太厉害,还是那句话“不想干,就走人”最近看到太多人抱怨公司没教他什么东西,什么都要自己弄,我反而觉得奇怪,公司就是公司,为什么毕业那么久了还保留着学生思维,要知道,公司不赢利就是死亡,首要目标就是利润最大化,请你来是解决问题的,不是制造问题的(自学能力太重要了)。古人云:君子修身,齐家,治国,平天下。而“修身”是排在第一位的,“齐家”“治国”“平天下”都要靠边站。所以,凡事都先从自己身上找原因,效果会好很多。台湾人经常搬弄的一句泊来语,我觉得还是有点助益的,“成功者找方法,失败者找借口。”臭话说多了,欢迎大家抛砖啊~~~~~~~~~ @!$%#$%
      

  30.   

    To:Daric(DADA)我的意思并没有说公司一定要手把手地教我如何实现目标(完成项目),只是说,靠公司的老员工的经验,在关键的时候指明一下方向,免得要绕了一个大圈又走回原地。这样子,对我个人,对公司都没有任何好处。我认识到自己的不足,不会放弃,还是会继续努力的。谢谢你的教诲。