Hello Demo client runtime error:
Problem:
jump a debug runtime error when invoking remote "helloword()"
Solution:
Enable RTTI in VC project. In 配置属性 - C/C++ - 语言 - 启用运行时类型信息
Reference:
http://www.zeroc.com/vbulletin/archive/index.php/t-844.html
Friday, December 22, 2006
整理:ICE Log: Hello Demo run failure
Hello Demo run failure:
Problem:
The ordinal 2604 could not be located in the dynamic link library LIBEAY32.dll
clicking ok spits this out to the console:
Quote:
server:
.\PluginManagerI.cpp:182: Ice::PluginInitializationException:
plug-in initialization failed: unable to load entry point `IceSSL:create'
Solution:
COPY libeay32.dll and ssleay32.dll from ice\bin to the working directory.
Because Windows will use SYSTEM dll before PATH.
Reference:
http://zeroc.com/vbulletin/showthread.php?t=817
Problem:
The ordinal 2604 could not be located in the dynamic link library LIBEAY32.dll
clicking ok spits this out to the console:
Quote:
server:
.\PluginManagerI.cpp:182: Ice::PluginInitializationException:
plug-in initialization failed: unable to load entry point `IceSSL:create'
Solution:
COPY libeay32.dll and ssleay32.dll from ice\bin to the working directory.
Because Windows will use SYSTEM dll before PATH.
Reference:
http://zeroc.com/vbulletin/showthread.php?t=817
整理:Current Path of ASP.net Application
ASP.net Application invokes a native dll.
The native dll need a conf file under Current Path. But what is the Current Path?
It is not the directory which the native dll locates.
Well....I found the answer is simple.
Because asp.net app is loaded by w3wp.exe, w3wp.exe is under C:\WINDOWS\system32\inetsrv
So the current path is C:\WINDOWS\system32\inetsrv !
The native dll need a conf file under Current Path. But what is the Current Path?
It is not the directory which the native dll locates.
Well....I found the answer is simple.
Because asp.net app is loaded by w3wp.exe, w3wp.exe is under C:\WINDOWS\system32\inetsrv
So the current path is C:\WINDOWS\system32\inetsrv !
整理:Best Practice in MS
总结一下,谈一下ms软件开发的一些best practice,个人体会
Reference: http://blog.csdn.net/shony_zhao/archive/2005/04/25/362014.aspx
1) 充分沟通:每个人都知道自己在干什么,也知道别人在干什么,同时一个代码由owner和一个xp式的buddy共同通晓,这样做review, buddy build都很方便,一个倒下了也不至于block。
2) No Pure Coder:没有纯粹的执行者,每个人都有充分的空间发挥,从feature构思到design到experiment到debug,每个人都可以作为倡导者,这样就不会有边缘人的感觉了……当然除了我,呵呵。
3) PM:PM是不懂也不管具体技术的,负责上下协调,要钱找人,控制进度,联系出行,集合玩乐,总之就是程序员们不喜欢的工作就交给PM啦。而且重要的任务还有调节男女比例,我们这里dev全是男的,2个女生PM就被捧着了,吃饭的时候明显有PM的那桌热闹。
4) 适当文档:其实ATC里代码的注释不是很多的,大段大段没有注释的代码也不少,文档也主要是Design和Spec。但是那些代码都很容易懂,当然匈牙利命名法+好的结构。当然接口定义是很详细的。
5) 包:什么都可以包,包一包就好了 。指针对象用栈对象一包,就不用管del,close了。c++用mc一包,去.net调。好东西啊。
6) 统一Error Code:统一Error Code Define,统一Error Message Map,这样就不会有冲突。
7) Feature Priority:Feature永远做不完,时间永远不够,所以定好P0,P1 ....
想到再加
Reference: http://blog.csdn.net/shony_zhao/archive/2005/04/25/362014.aspx
1) 充分沟通:每个人都知道自己在干什么,也知道别人在干什么,同时一个代码由owner和一个xp式的buddy共同通晓,这样做review, buddy build都很方便,一个倒下了也不至于block。
2) No Pure Coder:没有纯粹的执行者,每个人都有充分的空间发挥,从feature构思到design到experiment到debug,每个人都可以作为倡导者,这样就不会有边缘人的感觉了……当然除了我,呵呵。
3) PM:PM是不懂也不管具体技术的,负责上下协调,要钱找人,控制进度,联系出行,集合玩乐,总之就是程序员们不喜欢的工作就交给PM啦。而且重要的任务还有调节男女比例,我们这里dev全是男的,2个女生PM就被捧着了,吃饭的时候明显有PM的那桌热闹。
4) 适当文档:其实ATC里代码的注释不是很多的,大段大段没有注释的代码也不少,文档也主要是Design和Spec。但是那些代码都很容易懂,当然匈牙利命名法+好的结构。当然接口定义是很详细的。
5) 包:什么都可以包,包一包就好了 。指针对象用栈对象一包,就不用管del,close了。c++用mc一包,去.net调。好东西啊。
6) 统一Error Code:统一Error Code Define,统一Error Message Map,这样就不会有冲突。
7) Feature Priority:Feature永远做不完,时间永远不够,所以定好P0,P1 ....
想到再加
整理:STL doesn't support UNICODE fully!
现在正好是写blog的时间了,因为那个按照网上的正确代码写成的程序终于开始run了。
先说一下这是如何的一件白痴事情吧:很简单,我不过是要读一个unicode文件,然后把它里面的某几行写到另外一个文件里去罢了。
OK, 看上去是小学生的题目,于是我准备正好练练手,试试看最近学到的standard c++的STL。
wstring, wfstream, wchar_t.......... everything looks correct, except the answer
好了,经过艰苦卓绝的嫌疑排查之后,疑点终于集中在wfstream上了,看上去他每次都只读写byte……(大概荒废了我一个下午)但是他是w-的啊……何况getline里面还有widen('\n')这样的操作。
经过我失败地用C style的东西改写后,work了,看来果然是wfstream的问题,不支持Unicode。
终于……看到变态的解释和解法了:
算了,我承认我高估STL了,或者说是VC上的STL
不讲了,累死了,有兴趣自己看http://www.codeproject.com/vcpp/stl/upgradingstlappstounicode.asp?df=100&forumid=16224&exp=0&select=646006
先说一下这是如何的一件白痴事情吧:很简单,我不过是要读一个unicode文件,然后把它里面的某几行写到另外一个文件里去罢了。
OK, 看上去是小学生的题目,于是我准备正好练练手,试试看最近学到的standard c++的STL。
wstring, wfstream, wchar_t.......... everything looks correct, except the answer
好了,经过艰苦卓绝的嫌疑排查之后,疑点终于集中在wfstream上了,看上去他每次都只读写byte……(大概荒废了我一个下午)但是他是w-的啊……何况getline里面还有widen('\n')这样的操作。
经过我失败地用C style的东西改写后,work了,看来果然是wfstream的问题,不支持Unicode。
终于……看到变态的解释和解法了:
using namespace std;
typedef codecvtMybase;
// CLASS Simple_codecvt
class Simple_codecvt : public Mybase
{
public:
typedef wchar_t _E;
typedef char _To;
typedef mbstate_t _St;
explicit Simple_codecvt(size_t _R = 0)
: Mybase(_R) {}
protected:
virtual result do_in(_St& _State, const _To *_F1, const _To *_L1, const _To *&_Mid1, _E *F2, _E *_L2, _E *&_Mid2) const
{return (noconv);}
virtual result do_out(_St& _State, const _E *_F1, const _E *_L1, const _E *&_Mid1, _To *F2, _E *_L2, _To *&_Mid2) const
{return (noconv);}
virtual result do_unshift(_St& _State, _To *_F2, _To *_L2, _To *&_Mid2) const
{return (noconv);}
virtual int do_length(_St& _State, const _To *_F1, const _To *_L1, size_t _N2) const _THROW0()
{return (_N2 < (size_t)(_L1 - _F1)? _N2 : _L1 - _F1); } virtual bool do_always_noconv() const _THROW0()
{return (true);}
virtual int do_max_length() const _THROW0()
{return (2);}
virtual int do_encoding() const _THROW0()
{return (2);}
};
#include
int _tmain(int argc, TCHAR* argv[])
{
const char *fname = "filename.txt"; // or whatever locale loc = _ADDFAC(locale::classic(), new Simple_codecvt);
wofstream myostr;
myostr.imbue(loc);
myostr.open(fname, ios_base::binary);
if (!myostr.is_open())
cerr << "can't write to " << fname << endl;
return 0;
}
算了,我承认我高估STL了,或者说是VC上的STL
不讲了,累死了,有兴趣自己看http://www.codeproject.com/vcpp/stl/upgradingstlappstounicode.asp?df=100&forumid=16224&exp=0&select=646006
整理:IIS 5 vs IIS 6
FT, 搞了半天原来真的是IIS 5和IIS 6的不同
IIS 5所有的App虽然都可以是Isolation(high),但是其本身还是在一个进程空间内,所以如果调用一个外部native dll的singleton对象,所有的App会指向同一个对象……
IIS 6就是真正的在不同进程空间内运行了,不同的App Pool终于是隔开的了
然而,xp是很难装IIS6的……
IIS 5所有的App虽然都可以是Isolation(high),但是其本身还是在一个进程空间内,所以如果调用一个外部native dll的singleton对象,所有的App会指向同一个对象……
IIS 6就是真正的在不同进程空间内运行了,不同的App Pool终于是隔开的了
然而,xp是很难装IIS6的……
Thursday, December 21, 2006
光线跟踪MPI并行版本 STEP 1
SolidViewer_MPI 并行msmpi, Win32版本基本完工。
关键词:光线跟踪3d场景渲染,易并行,条状分割
现在在一台机器上开n个mpi进程试验成功,不过好像效率上差不多。
下一步准备研究Win64编程,然后把这个deploy到Windows Cluster上面
话说为啥Window CCS只有x64版本呢?还得我很多东西还要重新改过……
关键词:光线跟踪3d场景渲染,易并行,条状分割
现在在一台机器上开n个mpi进程试验成功,不过好像效率上差不多。
下一步准备研究Win64编程,然后把这个deploy到Windows Cluster上面
话说为啥Window CCS只有x64版本呢?还得我很多东西还要重新改过……
Thursday, December 07, 2006
VS2005超大bug
vs2005我装了x64编译器后(不知道没装之前有没有这个bug):
1)创建最简单win32 console,啥都不改
2)debug下直接run,显示找不到msvcr80d.dll
3)属性里把“使用标准windows库”改成“静态库使用MFC”,run,正确
4)改回“使用标准windows库”, run,就不报错了……
解决方案除了上面说的那个么,还有:
a)在“属性->配置属性->清单工具->常规“下有一个”使用FAT32解决办法,把它选成是,就可以了。(注意:一定要先配置这个选项,然后再编译工程,要不然还是不好用:)
b)到你的工程的文件夹,如(myproject),找到其下的myproject\myproject\Debug\ myproject.rec,把它删掉(删掉整个Debug目录也可以),重新编译,搞定
c)在“属性->配置属性->清单工具->输入输出”,把嵌入manifest选为否
1)创建最简单win32 console,啥都不改
2)debug下直接run,显示找不到msvcr80d.dll
3)属性里把“使用标准windows库”改成“静态库使用MFC”,run,正确
4)改回“使用标准windows库”, run,就不报错了……
解决方案除了上面说的那个么,还有:
a)在“属性->配置属性->清单工具->常规“下有一个”使用FAT32解决办法,把它选成是,就可以了。(注意:一定要先配置这个选项,然后再编译工程,要不然还是不好用:)
b)到你的工程的文件夹,如(myproject),找到其下的myproject\myproject\Debug\ myproject.rec,把它删掉(删掉整个Debug目录也可以),重新编译,搞定
c)在“属性->配置属性->清单工具->输入输出”,把嵌入manifest选为否
Subscribe to:
Posts (Atom)