Diddy 的个人资料Smoker's wEbLOg照片日志列表更多 ![]() | 帮助 |
Access Office Word 2007 with automation using VC9.0由于程序需要从Document的第一页到最后一页做一次循环,遇到不少问题; jclass clazz = jEnv->GetObjectClass(jParameter); return true; Simple HTTP Server using Java最近准备为组员组织一次HTTP原理的培训,之前准备过ASP.Net方面的类似课程,有些示例是用Python和C#编写的,因为组员用java,为了达到理想效果就编写了一个Java版本的HTTP Server,要注意的就是java的socket与windows socket库在使用方面有很大的不同,没有研究过unix下的socket不知道是不是类似的设计? ComboBox items.count不等于DataSource实际的记录数的问题及解决方法这个问题几周前就遇到了,当时选择绕行,今天又遇上,这次是狭路相逢了,问题是这样的: JNI: extend java features using VC9.0最近经手的一个java项目里使用了jacob来操作Office,但是不定时地会出现异常导致javaw.exe/java.exe进程被关闭,查看日志异常是由从一个jacob的判断是否为空的函数开始产生的,一方面自己对java了解不深更不想一开始就去碰jacob这样的东西(相信很复杂),打算用JNI通过VC访问Office对象。 static { #ifndef _Included_COMIntf #ifdef __cplusplus Call CLR using MFC最近有个项目需要从MFC里调用C#的组件,采用插件的方式组合。 #pragma once #include <afxwinforms.h> using namespace Microsoft::VisualC::MFC; // CDymanicView view class CDymanicView : public CWinFormsView protected: public: protected: DECLARE_MESSAGE_MAP() ////// DymanicView.cpp // DymanicView.cpp : implementation file #include "stdafx.h" // CDymanicView IMPLEMENT_DYNCREATE(CDymanicView, CWinFormsView) CDymanicView::CDymanicView(): CWinFormsView(::System::Windows::Forms::Control::typeid) CDymanicView::~CDymanicView() } BEGIN_MESSAGE_MAP(CDymanicView, CWinFormsView) END_MESSAGE_MAP() // CDymanicView drawing void CDymanicView::OnDraw(CDC* pDC) void CDymanicView::OnInitialUpdate() void CDymanicView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) void CDymanicView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) // CDymanicView diagnostics #ifdef _DEBUG #ifndef _WIN32_WCE // CDymanicView message handlers using CLR in VC9.0老板发疯一样追求UI,一定漂亮精致、一定要方便、一定要有价值,后两者是我的十分认同的,前者那是留给与我另一个世界的人思考的;
从网页系统的表现来看,老板是个很注重细节的人,可苦于他自己已经多年不搞技术在表达上已经略显幼稚,我无意评价我的老板,反而我是在思考:这么一个没品味的民族又怎会细细何尝每个细节?如同满大街的Adidas/Nike/Pump/Kappa,时尚吗?我看到多半是没素质没涵养的人群,穿得再光鲜同样挤在不舒服的公车里,开着BMW也每天和我一样穿过工地,越过巨型停车场……生存压力太大,幸福的光环最多辐射自己和家人(这就足够了?),缺乏幸福感的国度。废话打住!想来想去Office2007让人耳目一新,如果像它一样老板应该没话说了,建立MFC应用的向导里有Office2007风格模板,如果选择用WinForm实现就找那堆套控件也够受的,而且之后还有些网络通讯要求极BT的东西,700MB/每人的东西1000多人一起传,两台服务器,我怎么也不明白,这东西是不是在挑战人类极限?
用MFC写界面(POP点的)那是相当不易的事儿,我在VC方面的积累还主要是操作系统方面的东西,UI从来都用Delphi解决大不了赛个HTML了事,其实MFC调用CLR就是通过COM接口的方式,理解这一点也就想通了,改天又把程序贴上来纪念下。今天又收到QJExpertMIS的修改列表,终于不再崔命一样了,不过也好不到那去,为了这事儿正常工作耽搁不少,想起最近通宵达旦都干了好几次,瘦得只除骨头了,这项目至少达到我其中一个目的:Onions可以快速地开发应用程序,至少这一点让我觉得幸福,今天又把Ary拉进来,希望能通过它加强一下Onions安全方面的性能,随后的工作流我想也不是什么问题,就是时间呀,怎么都不够用。。。。 郁闷今天相当郁闷,被一只小菜鸟说我领导无方,我这个气呀…… trouble with hiding IE7.0 or later addressbarThe behavior described in this comment is by-design. In Internet Explorer 7 and later, you cannot remove the address bar in Internet Zone windows, for security (anti-spoofing) reasons. As described in the MSDN article above, in IE7 and later, location=no simply hides the back/forward/stop navigation buttons, and makes the address bar read-only. (The reason you can hide the address bar when the file is saved locally is that the file is opened in the Local Machine zone rather than the Internet Zone.) -EricLaw, Program Manager, Internet Explorer Security. The address bar is not supposed to come in a pop up, if we are setting "location=no" in the input "Features" of window.open(). It is coming at certain situations as follows. Please let me know why it is coming like that. Steps to reproduce this issue 懒人和弱智 当你骂一个人说他怎么这么懒,一般不在乎,多半还跟你嬉皮笑脸,甚至说是他的一种生活方式;反而你骂他是弱智的时候他肯定跟你脸红脖子粗,露袖子动粗,非要搬回自己的那点点根本上不了称板的“尊严”。 LuaInterface+.Net CLRfrom CLR to Lua
引用一下LuaInterface(http://luaforget.net),有手册可以参考,很简单就可以使自己的程序支持lua了
from lua to CLR, ref form.lua
-- kevinh - the following lines are part of our standard init -- require("compat-5.1") luanet.load_assembly("System.Windows.Forms")
luanet.load_assembly("System.Drawing") Form=luanet.import_type("System.Windows.Forms.Form")
Button=luanet.import_type("System.Windows.Forms.Button") Point=luanet.import_type("System.Drawing.Point") form1=Form()
button1=Button() button2=Button() function handleClick(sender,data)
if sender.Text=="OK" then sender.Text="Clicked" else sender.Text="OK" end button1.MouseUp:Remove(handler) print(sender:ToString()) print("\n") end button1.Text = "OK" button1.Location=Point(10,10) button2.Text = "Cancel" button2.Location=Point(button1.Left, button1.Height + button1.Top + 10) handler=button1.MouseUp:Add(handleClick) form1.Text = "My Dialog Box" form1.HelpButton = true form1.MaximizeBox=false form1.MinimizeBox=false form1.AcceptButton = button1 form1.CancelButton = button2 form1.Controls:Add(button1) form1.Controls:Add(button2) form1:ShowDialog() 很好很强大的功能,不过目前不知道可以用在什么地方,呵呵 Django今天突然想掌握一个新东西,于是就从自己比较喜欢的语言着手——Python 就想发牢骚 我记忆里最深刻的音乐其实是一盒磁盘,依稀记得是一个叫xxxx Philips音乐手的木吉他,很抒情很打动我的音乐; 那会儿忘了是从哪里弄了些喇叭,把它们按功率大小一个个串在我书桌下的那个比较私密空间里,放学回家就开始听那盒磁带如果刚好有点老爸没喝完的小酒再妙不过了。 也是从那会儿开始对吉他着了迷,对纯音乐(没有一丝人声)也喜欢上了,所以后来窦唯纯音乐的CD很是喜欢。 不记得在那里找到了一盒叫《Here, There And Everywhere》由Sébastien Schuller用古典吉他演奏的音乐,首先是名字是我喜欢的Beatles的歌,amazon.com上有购,等再下下决定把它也收了。 不过,昨天在google music里找到类似的音乐叫Here, There & Everywhere (The Songs Of The Beatles),很不错。 我一直想纳闷,吵闹的rock我也很喜欢,而像木吉他、小提琴这类组成的轻音乐我同样喜欢,完成不同的东西,怎么会被我同时喜欢上的。。。然后,突然想找找Paul Gilbert的电吉他刺激一下神经,无意就发现了这只乐队:Samad,应该是阿拉伯国家歌(目测)。 最近把Onions的工具强化了一下,可当基础功能做完之后突然觉得很疲惫。 用Lua做自己的脚本解释器1、从http://www.lua.org/download.html找一5.x的版本下载之,将下载之文件压缩到某个目录(如:D:\Lua); namespace ConsoleApplication2 public Program() public void quit() static void Main(string[] args) public void Run() while (bRunning) strInput = Console.ReadLine(); catch (Exception ex) finally 阿昌寨我家楼下有家阿昌寨餐馆,东西还算得上好吃也算得上刀快,每每过几天就要吵到深夜,今天也一样,寂寞的阿昌们又在约会,殊不知这里不是村子,不像在大山里可以尽情狂欢,混凝土的森林里不需要这种方式,这个森林里的动物们会到让人欲望膨胀的地方撒野。 P'是与P1,P2确定的直线方程的直线距离方程批实现在写建模工具时时常用需要用得到这样的算法:通过用户点击的点来确定是否选中某一斜线。
算法是这样的,根据点击确定一直线再计算用户点击的点与该直线的直线距离是否位于某个区间,小于该区间即被选中。
//////////////////////////////////////////////////////
// // // 利用直线方程,求证X,Y到两点确定的直线的距离 // Percision 为精度(距离) // 注:两点式直线方程为: (y-y1) = [(y2-y1)/(x2-x1)](x-x1) // 一般方程为: [(x2-x1)y] + [-(y2-y1)x] + [x1(y2-y1) - y1(x2-x1)] = 0 // A = -(y2-y1) // B = (x2-x1) // C = x1(y2-y1) - y1(x2-x1) // 点,{x,y} // 点到直线的方程为: d = abs[(Ax+By+C)/sqrt(A*A+B*B)] function PointInLineFunc(const P1, P2: TPoint; const X,
Y: Integer; const Precision: Double): Boolean; var y2y1 : Integer; x2x1 : Integer; A, B, C : Integer; d : Double; begin result := False; if (P1.X <> P2.X) and (P1.Y <> P2.Y) then begin
if P1.X > P2.X then begin if P1.Y > P2.Y then begin result := (X < P1.X) and (Y < P1.Y) and (X > P2.X) and (Y > P2.Y) end else if P1.Y < P2.Y then begin result := (X < P1.X) and (Y < P2.Y) and (X > P2.X) and (Y > P1.Y) end end else if (P1.X < P2.X) then begin if P1.Y > P2.Y then begin result := (X < P2.X) and (Y < P1.Y) and (X > P1.X) and (Y > P2.Y) end else if P1.Y < P2.Y then begin result := (X < P2.X) and (Y < P2.Y) and (X >= P1.X) and (Y > P1.Y) end; end end // 垂直或平行与X轴的直线 else if (P1.X <> P2.X) or (P1.Y <> P2.Y) then begin if P1.X = P2.X then begin if P1.Y > P2.Y then result := (ABS(X - P1.X) <= Precision) and (Y > P2.Y) and (Y < P1.Y) else result := (ABS(X - P1.X) <= Precision) and (Y < P2.Y) and (Y > P1.Y) end else begin if P1.X > P2.X then result := (ABS(Y - P1.Y) <= Precision) and (X > P2.X) and (X < P1.X) else result := (ABS(Y - P1.Y) <= Precision) and (X < P2.X) and (X > P1.X) end; end; if not result then Exit;
y2y1 := P2.Y - P1.Y;
x2x1 := P2.X - P1.X; A := -y2y1; B := x2x1; C := P1.X * y2y1 - P1.Y * x2x1; d := abs((A * X + B * Y + C) / sqrt(A * A + B * B)); result := d <= Precision; end; 这是诺干年前的代码了,现在再回顾,真得觉得自己才华横溢呀…… 近况 最终还是上java了这贼船,从我开始厌烦它到现在已经有那么6、7年时间了,而现在再查资料了解java的时候已经不再那么偏激,也惊叹java发展的速度,可骨子里我还是很喜欢C++和Parscal。为什么?习惯成自然了吧。要讲开发效率,首先动态语言,要讲学习研究还是把重点放回C吧。 之前有尝试转做营销方面工作的打算,可老婆开导之后(其实更多是自己有点退缩)还是选择不浪费已经积累近十年的软件开发经验。 打算去的新东家也不是十分满意,一个是待遇,还有一个就是职位,不过毕竟谈到java我可能连一个刚毕业两三年的新手都不如。不过,厚积薄发是我的特点,技术之路如同长跑,没有天赋没有苦练没有智慧都会失败,所以新东家的高手们小心了,别说死得莫名,wuhahaha 近半年打LT3C成瘾,已经严重影响自己生活质量和工作能力,也许是才真正独立有了自己的家庭,凡事都有个磨合期嘛,不过我至少已经意识到这问题的严重性了,这毛病不可以有!总结一下玩LT3C的思考:在游戏里骂垃圾的大多工作和生活里是新垃圾,大把时间都花在提高APM玩猥琐了,可以想像这人要么孩子气让人够受要么RP绝对有问题,孔子说:游戏是一个人本性的反射。没有好与不好的队长或队友,而是有没有良好的一个团队才这是个游戏胜利的根本。 最近瘦得一塌糊涂,很难想像才毕业时72KG的感觉了,工作之后再没有上过70KG。。。 HD201最近,对佩戴型耳机比较发烧,刚好有个同事也有此嗜好,约着一起在amazon.cn买了两副佩戴型耳机,相对之后觉得森海塞尔性价比高,质量稳定,于是有了下面的对比: Visual Studio 2008 插件开发(四)如果要添加新的内嵌资源ProjectItem时候,目前我知道的有两个途径: 1、通过修改模板中的工程文件(*.csproj)文件里定义: 2、通过代码的方式: 如果你的ProjectItem和我一样需要根据用户定义的选项才知道需要添加多少个的时候,就需要这种方式了。 在AddProjectItem或AddFromFileCopy返回的ProjectItem里有Properties属性其中有大量的信息,有些信息在VS的属性编辑器里是看不到了,以下我Debug输出的情况: providers.config is {6BB5F8EE-4483-11D3-8BCF-00C04F8EC28C} Extension:.config FileName:providers.config CustomToolOutput: DateModified:2009-6-23 16:01:49 IsLink:False BuildAction:3 SubType: CopyToOutputDirectory:0 IsSharedDesignTimeBuildInput:False ItemType:EmbeddedResource IsCustomToolOutput:False HTMLTitle: CustomTool: URL:file:///D:\temp\BrokerLibrary1\BrokerLibrary1\Config\providers.config Filesize:14782 CustomToolNamespace: Author: FullPath:D:\temp\BrokerLibrary1\BrokerLibrary1\Config\providers.config IsDependentFile:False IsDesignTimeBuildInput:False DateCreated:2009-6-23 16:01:49 LocalPath:D:\temp\BrokerLibrary1\BrokerLibrary1\Config\providers.config ModifiedBy: EnvDTE.ProjectItem item = mappingFolder.ProjectItems.AddFromFileCopy(mappingFile); item.Properties.Item("BuildAction").Value = 3; 梦昨天做了一个奇怪的梦,梦见自己身处伦敦一个Adidas的仓储式商店里,可商店里又充满恐怖的气氛,有许多空空的黑暗的屋子,背景是些R&B的音乐节奏很棒。好像我和朋友在逛街,遇到一辆Made in china的三轮摩托,然后就空白了。 vs2008 add-in 编写(三)add-in的功能只是与IDE接口并扩展IDE的功能,我只是把它理解为入口点,如果是像通过插件的方式增加新类型的项目或项目项其工作量大的有点吓人。 |
|
|