Quantcast
Channel: C++博客-所有随笔
Viewing all 7880 articles
Browse latest View live

C++ 自定义动态数组模板 以及C++编译期间类中的常量

$
0
0

核心提示:
#include "stdafx.h"
#include <iostream>
using namespace std;
template <class T>
class MyArray
{
int len;
public:
T *data;
MyArray()
{
data = NULL;
len = 0;
}
~MyArray()
{
delete[] data;
}
T& operator [](int index);
void push(T d);
};
template <class T>
T& MyArray<T>::operator [](int index)
{
if(index<0||index>(len-1))
{
cout<<"Bad subscript!"<<endl;
exit(1);
}
return data[index];
}
template <class T>
void MyArray<T>::push(T d)
{
T *pdata = data;
data = new T[len + 1];
if(pdata != NULL)
{
for(int i = 0 ; i < len ; i++)
{
data[i] = pdata[i];
}
delete[] pdata;
}
data[len] = d;
len++;
}
//测试代码
  int main(int argc, char* argv[])
{
MyArray<int>  a;
a.push(11);
a.push(22);
a.push(33);
a.push(55);
a[0]=44;
cout<<a[0]<<endl<<a[1]<<endl<<a[2]<<endl<<a[3]<<endl;
return 0;
}

问题:在类中建立一个int类型的数组   
方法一:(错误)   
class Test   
{   
const int size = 100;   
int array[size];   //……   
};   
错误原因:   
1:因为在一个类中,const恢复了它在c中的一部分意思,在每个类对象里分配存储并代表一个值,这个值一旦被初始化以后就不能被改变。所以在类中使用了const的意思是:在这个对象的生命周期内,它是一个常量。   
然而,每个对象可能包含不同的值。   
2:对const常量进行了初始化,C++中这个初始化必须由构造函数完成,如const常量在初始化列表中进行初始化。   
方法二:(正确,有缺陷)   
使用enum;   
class Test   
{   
enum { size = 100};   
int array[size];   //……   
};   
使用enum不会占用对象中的存储空间的,枚举常量在编译的时候被全部求值。   
缺点:   
假如定义一个非整型的常量该如何?enum无法完成此项操作,同时丧失了枚举本来的作用。   
方法三:(正确,最好)   
使用静态常量;   
class Test   
{   
static const int size;   int array[size];   //……   
};   
const int Test::size = 100;   
它既是常量,不能改变,又是静态,在类中只有一个定义点。所以能够完成任务。  
 同时,它可以定义任何与定义类型的常量。

吴奇 2014-01-06 14:02 发表评论

责任链表模式,链式的对象事件(消息、句柄)处理

$
0
0
责任链表的本质是:将可能处理一个请求的对象链接成一个链,并将请求在这个链上传递,直到有对象处理该请求(可能需要提供一个默认处理所有请求的类)

UML结构图:


这个模式也比较简单,没太多值得说得,复制了这里的内容:http://blog.csdn.net/lcl_data/article/details/9042739

辛辛苦苦了工作了一年,终于可以加薪了,向主管提交了加薪申请,主管一看不得了,自己职权不够,批不了,主管把申请上交总监,总监发现自己也批不了,申请到了总经理手中,总经理一看,小伙子口气不小了,有胆识敢申请,先来谈下心。

#include <iostream>
#include <string>
using namespace std;

// 请求
class Request
{
public:
    int m_nNumber;
};

// 管理者
class Manager
{
public:
    Manager(string temp) { name = temp; }
    void SetSuccessor(Manager* temp) { manager = temp; }
    virtual void GetRequest(Request* request) = 0;
    virtual ~Manager() {}
protected:
    Manager* manager;
    string name;
};

// 经理
class CommonManager : public Manager
{
public:
    CommonManager(string strTemp) : Manager(strTemp) {}
    virtual void GetRequest(Request* request);
    ~CommonManager() final {}; 
};

void CommonManager::GetRequest(Request* request)
{
    if (request->m_nNumber>=0 && request->m_nNumber<1000)
    {
        cout << name << " 处理了请求: " << request->m_nNumber << endl;
    }
    else
    {
        manager->GetRequest(request);
    }
}

// 总监
class Majordomo : public Manager
{
public:
    Majordomo(string strTemp) : Manager(strTemp) {}
    virtual void GetRequest(Request* request);
};

void Majordomo::GetRequest(Request* request)
{
    if (request->m_nNumber <= 5000)
    {
        cout << name << " 处理了请求: " << request->m_nNumber << endl;
    }else
    {
        manager->GetRequest(request);
    }
}

//总经理  
class GeneralManager: public Manager  
{  
public:  
    GeneralManager(string name):Manager(name) {}  
    virtual void GetRequest(Request* request)  //总经理可以处理所有请求  
    {         
        cout << name << " 处理了请求: " << request->m_nNumber << endl;        
    }  
};

int main(){
    Manager* common = new CommonManager("张经理");
    Manager* major = new Majordomo("李总监");
    GeneralManager* general  = new GeneralManager("赵总");
    
    common->SetSuccessor(major);
    major->SetSuccessor(general);
    Request* rq = new Request();

    rq->m_nNumber = 999;
    common->GetRequest(rq);
    
    rq->m_nNumber = 4999;
    common->GetRequest(rq);

    rq->m_nNumber = 6999;
    common->GetRequest(rq);

    delete rq;
    delete major;
    delete common;
    delete general;
    return 0;
}




何清龙 2014-01-06 16:17 发表评论

外观模式 与 适配器模式,

$
0
0

适配器模式 有时候也称包装样式或者包装。将一个的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类别自己的接口包裹在一个已存在的类中。

有两类适配器模式:

·对象适配器模式 - 在这种适配器模式中,适配器容纳一个它我包裹的类的实例。在这种情况下,适配器调用被包裹对象的物理实体。

·类适配器模式 - 这种适配器模式下,适配器继承自已实现的类(一般多重继承)。facade 为外部提供一致的界面,但不改动逻辑语义
 

图1:类模式适配器

图2:对象模式适配器



外观模式 为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易使用。
在cocos2d-x中,SimpleAudioEngine是一个外观模式。它将不同平台的通用的音频操作整合为一致的接口。

来自维基百科的实现:http://zh.wikipedia.org/wiki/%E5%A4%96%E8%A7%80%E6%A8%A1%E5%BC%8F

class CPU {
public:
    void freeze() {  }
    void jump(long position) {  }
    void execute() {  }
}
 
class Memory {
public:
    void load(long position, char* data) {
        
    }
}
 
class HardDrive {
public:
    char* read(long lba, int size) {
        
    }
}
 
/* Façade */
 
class Computer {
public:
    void startComputer() {
        cpu.freeze();
        memory.load(BOOT_ADDRESS, hardDrive.read(BOOT_SECTOR, SECTOR_SIZE));
        cpu.jump(BOOT_ADDRESS);
        cpu.execute();
    }
}
 
/* Client */
 
class You {
public:
    void start(String[] args) {
        Computer facade = new Computer();
        facade.startComputer();
    }
}

外观模式 
与 适配器模式 的区别在于,适配器是为了使得一个已经存在的类在逻辑上成为另外一种类;而外观模式只是为了将逻辑相同,但是底层细节不同的接口转化为统一的接口,起语义逻辑不变。




何清龙 2014-01-06 16:40 发表评论

简单搞了下lua,后面在认真分析下细节

$
0
0
#include <iostream>
extern "C"
{
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
}
#include <luabind/luabind.hpp>
using namespace luabind;
class TestClass
{
public:
TestClass(int a,int b);
static TestClass* Singleton();
int add();
virtual void ShowTest(std::string& strMsg);
private:
static TestClass* mSingleton;
int __a,__b;
};
void TestClass::ShowTest(std::string& strMsg)
{
std::cout << __FUNCTION__ << std::endl;
std::cout << strMsg.c_str() << std::endl;
strMsg += "000";
}
TestClass* TestClass::mSingleton = NULL;
TestClass::TestClass(int a,int b)
{
__a = a;
__b = b;
mSingleton = this;
}
TestClass* TestClass::Singleton()
{
if(TestClass::mSingleton == NULL)
{
return new TestClass(0,0);
}
else
{
return mSingleton;
}
}
int TestClass::add()
{
std::cout << __FUNCTION__ << std::endl;
return __a+__b;
}
int bindClass(lua_State* L)
{
open(L);
module(L)
[
class_<TestClass>("TestClass")
//.def(constructor<int,int>())
.def("add", &TestClass::add)
.def("ShowTest", &TestClass::ShowTest),
def("Singleton", &TestClass::Singleton)
];
return 0;
}
int LuaErrorCallBack(lua_State *L)
{
std::cout << __FUNCTION__ << std::endl;
return 0;
}
int main(int argc, char* argv[])
{
luabind::set_pcall_callback(&LuaErrorCallBack);
TestClass testClass(10,5);
lua_State* L = lua_open();  
luaL_openlibs(L);
std::cout << "init lua system" << std::endl;
bindClass(L);
std::cout << "do lua file" << std::endl;
try
{
std::string strFileName = "add.lua.ini";
int iRet = luaL_dofile(L, "add.lua.ini");
if (iRet != 0)
{
std::cout<<"loadfile error[file: " << strFileName.c_str() << "]: "<<lua_tostring(L, -1)<<std::endl;
}
//if (luaL_loadfile(L, strFileName.c_str()) != 0) {
// std::cout<<"loadfile error[file: " << strFileName.c_str() << "]"<<lua_tostring(L, -1)<<std::endl;
//}
//if (lua_pcall(L, 0, LUA_MULTRET, 0) != 0) {
// std::cout<<"pcall error[file: " << strFileName.c_str() << "]" <<lua_tostring(L, -1)<<std::endl;
//}
std::cout << "end" << std::endl;
//getchar();
}
catch(std::exception& ex)
{
std::cout << ex.what() << std::endl;
}
catch(luabind::error er)
{
std::cout << er.what() << std::endl;
}
lua_close(L);
return 0;
}


print("This is valid")
print(1234)
bad_function()
a = "meow"
b = 7
c = a + b
testClass = Singleton()
a = testClass:add()
print(a)
local valMsg = '中文'
testClass:ShowTest(valMsg)
print(valMsg)


Enic 2014-01-06 16:49 发表评论

使用libdrizzle实现mysql代理服务器的问题及优化

$
0
0
近期项目需要一个mysql代理服务器,实现mysql协议代理和路由功能,形成简单的mysql集群服务。现成的开源方案是mysql-proxy , 分析功能和源代码后发现跟我们的应用场景不太匹配,于是决定重新实现一个符合需求的mysql代理服务器,考虑到需要完美支持mysql协议,优先选择了libdrizzle库, libdrizzle是开源项目drizzle中的协议库,而drizzle可以看作mysql的分支版本,目前稳定版本是7.1.36 , 下面主要是记录使用libdrizzle中遇到的一些问题。
1. 关于nonblock模式的问题,现代应用服务器典型架构一般是使用reactor/proactor模式的事件驱动模型,如何把libdrizzle和应用服务器的驱动模型很好的结合起来尤其重要, libdrizzle支持nonblock模式,独立实现了事件驱动机制,使用poll监控网络事件,具体在drizzle_con_wait()中实现,然后通过drizzle_con_ready()遍历产生事件的网络连接,即drizzle_con_st对象,该接口难以与通常的网络事件驱动机制配合使用,性能也不太理想,具体用法可参见其自带的样例程序examples/client.cc , 也就是说libdrizzle的驱动模型需要重新封装成跟应用服务器相匹配,才能真正发挥nonblock模式的性能。

2. drizzle_result_st对象初始时一些内部数据没有初始化,容易造成程序崩溃,因此需要修改构造函数,初始化所有内部数据。涉及文件libdrizzle-2.0/structs.h 
相应字段为field, field_buffer,row 。

3. libdrizzle中运行时产生的内部对象都以双链表形式挂接在其上级对象中,例如drizzle_st对象中有个双链表维护其创建的drizzle_con_st对象,类似地,drizzle_con_st对象中有个双链表维护其创建的drizzle_result_st对象,所有的对象通过这种形式级联管理,并且这些对象中保存着上下文相关的状态,这样的实现方便资源管理,防止资源泄露,但在代理服务器中,请求和结果在不断转发过程中会形成大量的内存拷贝,为了减少转发过程中的内存拷贝,需要把drizzle_result_st显式的从drizzle_con_st中移除,当数据发往客户端完成后再删除,因此增加了drizzle_result_detach()接口,用于从drizzle_con_st对象中移除drizzle_result_st对象 , 涉及文件libdrizzle-2.0/result.h , libdrizzle-2.0/result.cc 

void drizzle_result_detach(drizzle_result_st *result)
{

  if (result->con)
  {
    result->con->result_count--;
    if (result->con->result_list == result)
      result->con->result_list= result->next;
  }

  if (result->prev)
    result->prev->next= result->next;

  if (result->next)
    result->next->prev= result->prev;

  result->con = NULL ;
  result->prev = NULL ;
  result->next = NULL ;
}


star 2014-01-07 10:07 发表评论

如何为Wordpress编辑器添加默认内容有

$
0
0
将下面的代码以合适的方式添加进你正在使用的Wordpress主题下的functions.php文件中:
  1.  // auto-insert content to post editor   
  2. function my_editor_content($content) {   
  3.     $content = "<h5>Powered by Suoling.net</h5>";   
  4.     return $content;   
  5. }   
  6. add_filter('default_content', 'my_editor_content');   
  7.   
  8. //Prevent Duplicate Content   
  9.  if ((is_home() && ($paged < 2 )) || is_single() || is_page() || is_category()) {   
  10.     echo '<meta name="robots" content="index,archive,follow" />';   
  11. } else {   
  12.     echo '<meta name="robots" content="noindex,noarchive,follow" />';   

有兴趣的朋友可以动手尝试一下

老何 2014-01-07 11:23 发表评论

错误的行动 2014-1-6

$
0
0

前几天我在想,如何让公众账号里面有更多的网友,前天晚上跟一位淘宝店主聊起了这件事,他给我的建议是向好友推送,当时我问他,“这样会不会打扰别人啊?要是别人举报该怎么办?”。对于我的疑问,他没有做回答,我想他也知道这个难题。
无赖我选取了几个表现不怎么样的账号试了一下,结果却出现很怪的情况,并没有人去举报我。而是有人开口大骂!哈哈……
公众账号一直没有太明显的涨幅,这又让我对微营销产生了一些新的疑问,微营销到底适合不适合我?



小麦 2014-01-07 12:54 发表评论

Eovia.Hexagon.v2.0

$
0
0
Eovia.Hexagon.v2.0
ELCAD v7.1.0  
Electronic.Design.Studio.3.v3.1.5
EliteCAD.Architektur.v10.1.incl.SP1
Embarcadero.ERStudio.v7.0.1
EMRC.NISA.CIVIL.V14
EngiLab.Beam2D.ML.v1.2 平面框架计算软件
Engineering.Power.Tools.v2.02
Engine.Analyzer.Pro.v3.3
ENSOFT_GROUP_V7.0.4
EOVIA.Amapi.Designer.v7.5
Eovia_Amapi_v7.5_Pro
Eovia.Carrara.3D.Basics.v2.1.READ.NFO
Eovia.Carrara.Studio.v3.0 2CD
Eovia_Carrara_v5.0_Pro  2CD
EQUIST.GOLD.FOR.WINDOWS 钢材手册
ERWIN.V4.0.SP2
ESOP.v3.0.Multilanguage
ESKER_PERSONA_V4.4
ESKER_SMARTERM_3270_5250_V10
Esker.SmarTerm.Essential.v11.0.1
Esker.SmarTerm.3270.5250.v11.0.1
Esker.SmarTerm.Office.v11.0.1
Esperient.Creator.v3.7
ETRUST.OCS.PRO.V2.0.SP1
ETU.Heizlast.EN.12831.v4.0.4.1
Eurosystems_EurocutDesign_6.1.06 标识设计
Eurosystems_EuroVECTOR_2_v6.1.06 故障点编辑及连续故障点产生软件
EXCALIBUR_2003_V607_DATECODE_20040607 机床和冲床制造工具
Extreme.Dnc.V4.9.8
Expression 3 简体中文正式版
EYEWIRE.MOTION.LIGHTSPEED  2CD
EYEWIRE.MOTION.SYNERGY.SERIES.ENTERTAINMENT  2CD
EZCAM EZ-EDM v13.3.1
EZCAM.EZ-Mill.Express.v13.1
EZCAM.EZ-Turn.Mill.Pro.v13.1.1
EZCAM.EDM4X.v13
EZCAM.EZ-Mill.Turn.v15.0
EZ-CAM Mill.Express.v13.2.3
EZ-CAM Turn.Mill.Pro.v13.2.5
FabriCAD.3.0 
FamilyCAM.v3.0.67
FastCAD v7.13
FATEC.Engineering.FMat.v1.0.1.39
FEM_DESIGN_V6.01.004
FemScope.ED-Elas2D_v2.20.1
FinalRender Stage-1 Service Pack1 完全版 1CD
Fluke.Networks.Optiview.Console.v6.5
FILOU-NC.v10.8.005
FLITESTAR_V8.5 2CD 飛行航路計畫軟件
Final.Draft.Inc.Final.Draft.6.0
FelixCAD.v5.0.Incl.SP6
Fxray.v5.0.for.FelixCAD
FloorPlan 3D v7.2.322
Floating.Point.Solutions.Image.Editor.v1.0.1
Floating.Point.Solutions.Mesh.Works.v1.03
Floating.Point.Solutions.STL.Editor.v2.0
Floating.Point.Solutions.STL.Export.v1.0.for.Autocad
Floating.Point.Solutions.XYZ.Import.for.Autocad.v1.0
Floating.Point.Solutions.Mesh.Works.v1.0.for.Rhino3D
Floating.Point.Solutions.Pix.Import.v1.0.for.Rhino3D
Floating.Point.Solutions.Mesh.to.Solid.v1.0.for.Rhino3D
Floating.Point.Solutions.Point.Cloud.for.Autocad.v1.0
Floating.Point.Solutions.XYZ.Import.for.Rhino.v1.0
Fit.at.Work.3D.v1.96.WinALL
Fluke.Networks.Optiview.Console.v6.0
Focus RedShift 5 天文模拟软件
Focus.Multimedia.Your.3D.Home.Designer.v2006
FORA.FORM.3D.TOOLS.v3.52.CONFIGURA.v5.00
Formtec.NCspeed.v5.1.0.4 模仿并解析如何加工
Frame.Shape.v1.08 工程应用软件
FUJITSU.CACHE.V7.5.0.85
G-Zero.Mill.v4.3
G-Zero.Lathe.v4.2
GAGEtrak.v6.12
Galaad.V.3.2.B( 专业NC工程辅助绘图系统 )
Garmin MapSource v5.4 1CD
gauss_6.0
Gcode2000_v28.07用于将AutoCAD绘图软件转换到G-Code程序,以便使用2D或3D机器如WireEDMs(线切割机),LaserEtchers(激光切割机),Flame(电火花切割机),Milling(磨床),Lathes(车床)等进行切割
Geek.Squad.MRI.BDE.v4.6.1
Gehry.Technologies.Digital.Project.V1R3.SP4.3
Gehry.Technologies.Digital.Project.V1R4
GENERAL.CADD.V3.1.21A
Geocentrix.ReWaRD.v2.5.9.17
GEOGRAF_CAD_V3.0
HHK.GEOgraf.CAD.v3.0e.1317
Geomagic.eShell.v7.0 助听器设计软件
GeoSystem.Delta.v5.0
Geometric.Software.eDrawings.Professional.for.Pro.ENGINEER.v1.0
Geometry.Expressions.v1.1.10 世界首款交互式符号几何系统
GeoSatSignal4.v4.0.2
GeoView v5.7.5
GerbTool.v15.0
GIZA.Pro.v2003
Glastik.Professional.V1.0.79.Bilingual 玻璃厚度演算的有限元软件
GMCL_DBDOC_BUILDING_SYSTEM_V9.51
GoldSim.v9.60.SP4
Graitec Advance v4.2 for AutoCAD2002
GraphiSoft_CYMAP_CADLink_v9.2_R2 建筑设计仿真软件
Graphitech.Rams.Gold.v2.7.2.266
GraphPad.Prism.v5.01
GREENHILL.MULTI.FOR.ARM.V4.0.1
GREENWORKS XFROG v3.5
Graphisoft.Change.Manager.2005 比较数百张CAD图纸的不同
GroundMap.v1.3.6
GSview.v4.2.Regged.WinALL
GTX.Image.CAD.PLUS.V8
GTXRaster.CAD.PLUS.v8.6.for.AutoCAD.2006
HarbourMan v1.05
HarrisTech_Bass_Box_Pro_v6.17  音箱设计
HASH.Animation.Master.2003.V10.5H
Heavy.Equipment.and.Machinery.Inventory.v1.1
HEIDELBERG_SIGNASTATION_V8.0.1
DAZ.3D.HEXAGON.V2.2  3D设计
HHK GeoGraf v3.0.1154
HHK_GEOgraf_CAD_v3.0c.1178
Holophase.CirCAD.v4.20e
Home.Plan.Pro.v4.5.14
HP.OPENVIEW.OMNIBACK.II.V4.1
HYPERMODEL.V1.2
HYPERFORMIX.IPS.PERFORMANCE.OPTIMIZER.v3.3.1
IAFES.FOUNDATION.V2.5
ICCad_v1.2.0
IComS.XCAD.2008.Professional.v1.1
Identify.AppSight.v5.72
IdeCAD Architectural IDS v5.14 建筑设计软件
IdeCAD Structural IDS v5.14 用于设计分析广阔地域或建筑系统,为建筑设计师专用工具,内容包括钢铁,混凝土和木材
IDRISI.KILIMANJARO.V14.0.1
IDS.ARIS.Design.v6.2.3
IGESWORKS.V6.0
IGUIDANCE.2.1.1 导航
Imbsen.WinSEISAB.v5.0.7
Image_Pro_Plus_v4.5.127
IMAGEWARE.UNILET.PRO.6.0.9.Datecode.11162006 标识设计
Informatix.MicroGDS.Pro.v9.0
INPHO.MATCH-AT.V4.06 
INPHO.MATCH-T.V.4.0
INPHO.SCOP.PLUS.PLUS.V5.3
INSCRIBER_VMP_V4.7_SP8
IntelliCAD.v4.8.1
Intel.Cryptography.for.Integrated.Performance.Primitives.v6.1.1.035
Intel.VTune.Performance.Analyzer.v8.0.014 分析软件 
Introduction_to_Thermal_Systems_Engineering
ISYS_DESKTOP_V9 数据搜索引擎
iThink.v9.0.2 系统思考工具
IVEX.SPICE.v3.02
Jardin.Et.Paysage.3D 3CD
JKBench.V1.1.5
KAJIMA.REALS.3D.V2.040426
Kaydara MOCAP v5.0
Kaydara MotionBuider Pro v5.0
KernelCAD.Pro.v1.2.2214
Kellyware.KCam.v4.0.11为低成本业余爱好设计的,Router/Mill模拟操作软件, 可导入DXF,NC, 及PLT专业CAD档, 运行CNC规格的设备
KINEMAP_DIGITAL_MAP_SOFTWARE_V5.0
KISSSOFT_HIRNWARE_10.2004(三维转换功能未破解)
KISSsoft.Hirnware.v10.2003
Kubotek.KeyCreator.v3.0.2
Kurv.Studios.Lightwave3D.9.Practical.Lighting
LanFlow.v4.12.1760.WinALL.Retail
LatheSim.v1.2.2
Lattix.LDM.v5.0.5
LinkCAD.v4.7.4.WinALL.Cracked
LisCAD.v7.0
LSPCAD.V6.20 面向业余和专业的音箱设计者的音箱设计和模型制作软件
LispLink 2000 v16.01
LIZARDTECH_GEOEXPRESS_V4.0
LLC.INNOVATIONSUITE.V5.0
LOST_MARBLE_MOHO_v5.2.1
Lumerical.FDTD_Solutions
LUXOLOGY_MODO_V1.0
Mathematics.Worksheet.Factory.Deluxe.v3.0.0131
MacKichan.Scientific.Workplace.v4.0
MACROVISION.FLEXNET.ADMIN.STUDIO.V7.0
MACROVISION.INSTALLSHIELD.PREMIER.V11.5
MagCAD.v2.2.3
Megatech.MegaCAD.3D.v2008
magic RP 7.1
Magicad.Electrical.v2004.9.SR1.For.Autocad.2000.2002
Magicad.Electrical.v2004.9.SR1.For.Autocad.2004.2005
Magicad.Heating.and.Piping.v2004.9.SR1.For.Autocad.2000.2002
Magicad.Heating.and.Piping.v2004.9.SR1.For.Autocad.2004.2005
Magicad.Room.v2004.9.SR1.For.Autocad.2000.2002
Magicad.Room.v2004.9.SR1.For.Autocad.2004.2005
MAGICAD.V2007.11.SR1
MapStar.v3.4
Master5.CNC_v3.25.ATP.Win9x
MATFOR.v4.0.in.Absoft.Fortran
MATFOR.v4.0.in.C.Plus.Plus
MATFOR.v4.0.in.Lahey.Fortran
MATFOR.v4.0.in.Visual.Fortran
MAXIMIZER.ENTERPRISE.V9.5
MBCAA.OBSERVATORY.ASTROMB.V2.7P 智能型天文数据库
MDSolids.v3.0
MEANS.COSTWORKS.V2002
Medion.Navigator.Upgrade.v5.1
MERCURY.QUICKTEST.PROFESSIONAL.9 负载測試
MERCURY.LOADRUNNER.V8.1
MERCURY.INTERACTIVE.SITESCOPE.V8.0
MERCURY_RESOLVERT_V4.0
Mercury.TGS.Amira.v4.1
MERCURY.WINRUNNER.V8.2
MEMSCAP.MEMS.PRO.V4.0
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■
*****************************************************************
好得行业软件网提供各个行业专业软件,所有软件均为完整版本,模块齐全,详细请咨询
TEL:13978229035               QQ:508925688 
Email: ywcwsoft@sohu.com     ywcwsoft@sina.com      ywcwsoft@126.com
好得行业软件网 www.haodesoft.com
点击咨询:http://haodesoft.53kf.com
请使用Ctrl+F 键来查询您所需软件,找到后联系我们QQ或是邮件,我们会第一时间为您回复
■□■□■□■□本廣告長期有效■□■□■□■□■□■□■□■□■□■□■□■□
Messiah Studio v2.0B
MetroWerks.CodeWarrior.HCS12.Compiler.v3.1
Metrowerks.CodeWarrior.Development.Studio.PowerPC.v8.6
NeuroDimension.TradingSolutions.v3.0.040916
MICROIMAGES.TNT.V6.8
MICROSOFT.ENCARTA.ENCYCLOPEDIA.DELUXE.2003 3CD
Microsoft.Expression.Web.2007
MICROSOFT.NAVISION.AXAPTA.V3.0
Microsoft_Navision_v4.0_SP1  2CD
MICROSOFT.PROJECT.PROFESSIONAL.V2002.FINAL
MICROSOFT.VISIO.PROFESSIONAL.V2002.SR1
MicroSurvey.CAD.2002.REPACK
MICROSTRATEGY.V7.1.4
Milestones.Pro.2004
Milestones.Simplicity.04
Mill.Program.Editor.v1.2
Mimaki_FineCut_6.2_for_Adobe_Illustrator
Mimaki_FineCut_5.2_for_CorelDRAW
Minutes.Matter.Studio.v2.0 窗户设计软件
MintNC.v5.Release.01.2005
MKS.Source.Integrity.Enterprise.Edition.v2005
MKS.Source.Integrity.Enterprise.Edition.Multiplattform.v8.4 2CD
Modellplan.WinTrack.3D.v7.0.6 3D地面建模软件
Moldex Lite.V1.0 塑胶模具模流分析软件
Molsoft.ICM-Pro.v3.4-6e
Molsoft.ICM-Browser-Pro.3.3
Motive.Systems.M-Color.v9.0
Mountain.3D.v3.0
MPLAB.C18.V3.0
MULTILIZER MultiplatFORM V5.1.4
MYOB.PREMIERE.V7.5会计
NCSS.with.GESS.2007.v7.1.5
NCSS_Statistical_And_Data_Analysis_v2005.01.21
NCSS_V9.2
NCSS_And_PASS_v2005.01.12
NCODE_NSOFT_v5.3.1
NEUROEXPLORER.v3.093
NeuroSolutions.v4.32.Developers.Edition
NeverCenter Silo v2.0.6
Neuro Solutions.v4.22.Developers.Edition
NEW.RIDERS.PRESS.INSIDE.3DS.MAX.4
NI-488.2.V2.01
NOBELTEC.ADMIRAL.V7.0-ISO
NOBELTEC.VISUAL.NAVIGATION.SUITE.V7.0 2CD
Nonlinear.Dynamics.TotalLab.TL120.v2009
NucleusUDB.v4.3
NUKED-Speedikon.W.Architektur.2.v6.021
O-Matrix.v6.0
Okino_Products_Suite_v4.12
OKINO.POLYTRANS.V4.2.1
One.DNC.v2.0.5.0
onecnc.one2000.design_v4.22
OneCNC.One2000.Lathe_v4.22
OneCNC.One2000.Mill.Production_v4.22
OneCNC.One2000.Mill.Professional_v4.22
OneCNC.One2000.Nesting_v4.22
OneCNC.One2000.Profiler_v4.22
OnyxTREE_PROFESSIONAL_Suite_v6
OPEL.EPC.v10.03 2CD
OPENT.Modeler.v11.5
OPTIMUS v5.0 SP1
PaintCOST.Estimator.for.Excel.v6.01油漆工程成本估算软件
PAS.Analysis.Center.v3.5
PaletteCAD_v2.3.German
Parasoft.SOA.Test.v4.5
Paula.SG.v1.1.0.6
p-CAD2001
P-Cad 2002 For Windows
PCA_BEAM_V1.51
PCA_SLAB_V1.51
pcaColumn.v3.00c
pcaFrame.v1.10b
pcaWall.v2.00c
PC.MACLAN.v4.2.2.for.WinNT
PC.MACLAN.v8.1.2.for.Win2KXP
PC.DNC.SUITE v3.0 
PeakFPGA Design Suite V5.20c
PERI_ELPOS_V4.0 任务编制 
PERI_PeriCAD FormWork v3.0
PICASOFT_MAYKA_SUITE_V6.0
Pinguin.Audio.Meter.v2.2专业电平表软件
Pipeworks.v3.0
Pipecad.PIPEsketch_v1.2.0.for.MicroStation
PINNACLE.EDITION.DV.V4.5
PLASSOTECH.3G.AUTHOR.2005.R1 CAD软件包
PLCAD.v2.0
ProcessModel.v5
Polar.Instruments.Si9000.v6.1
Polar SI9000E Field Solver v6.00   2100元
POLAR.SI8000M.v3.10
POLAR.SI8000.V6.0
Polar.SB200a.Professional.v6.0
POLAR.INSTRUMENTS.SB200.V2.100
Port.Flow.Analyzer.v3.0.E061
PowerFrame v4.8.Multilanguage
PowerPlate Master v3.8.Multilanguage(家居设计)
PowerConnect.v3.10.Multilanguage
Powersim Studio 2005 v6.00.3372.6
PREDATOR.VIRTUAL.CNC.V4.1
ProFab_Elite_With_Laser_v3.7与激光加工数控机床联合使用的测量和加工软件
ProfiCAD.v5.4.4 电气原理图创建CAD
ProgeARC_2006_For_ProgeCAD
ProgeMEC_2006_For_ProgeCAD
ProgeCAD.2008.Professional.v8.0.5
Pronosco_X-posure_2.1.3
PUNCH Design Architectural Series 3000
Punch.Home.Design.Architectural.Series.4000.v8.0
Pulsonix.Advanced.Electronics.Design.System.v2.0
QC_Calc_Offline_Geodetic_Calculator_v2.17
Qfinsoft.Qfin.v3.0.9 散热片软件
QDESIGNER.V9.0
Quest.QDesigner.Physical.Architect.Enterprise.v12.0
Quark.Xpress.6.5 排版软件
QuickBooks.Premier.2007 速达
Quick Split v3.30 WinALL
QuickTAX.2001
QuikLogic.QuickWorks.V9.64 1CD(ESP和FPGA的开发软件)
R2V V5.5.030812汉化完整版
RagTime.v6.0.2
RAP-ONE.v3.5
Rayfront.v1.0.4
RATIONAL.XDE.PRO.PLUS.V2002
RATIONAL.XDE.DEVELOPER.FOR.JAVA.V2003.6.12
Real.Time.Labour.Guide.v6.6.1 机械修理辅助 
REALVIZ.MATCHMOVER.PRO.V4.0
RealViz.ImageModeler.v4.0.2.15269
REALVIZ.ImageModeler.v3.5.2(带3DAMX转换插件)
RealViz.SceneWeaver.v1.0.1.7986
REALVIZ_STITCHER_UNLIMITED_V5.6
Remo.3D.v1.0
Remograph.Remo.3D.v1.0
RENESAS.HIGH-PERFORMANCE.EMBEDDED.WORKSHOP.V3.1
RENESAS.CC32R.V4.30
RENESAS.NC308WA.V5.20
RENESAS.NC30WA.V5.30.R02
Right_Hemisphere_Deep_Paint_3D_v2.1.1.4
Right_Hemisphere_Deep_Paint_v2.0 
RIGHT_HEMISPHERE_DEEP_EXPLORATION_V5.0.2.1477_CAD_EDITION
Deep.Creator.v2.0.0.955 
Right_Hemisphere_Deep_UV_v1.2.0.7 
Road.Scout.2004.v9.2.BILINGUAL
ROBOLAB.V2.5.4.MAC.OSX
ROBOSUITE.V6.1
Rob.Papen.ConcreteFX.Blue.v1.0.VSTi.AU.HYBRiD
RX.AutoImage.Pro.R7.5
Sage.Payroll.v10薪水发放
Sandia.Software.Cadrail.v8.02
Scansoft.Omnipage.Pro.v12
Sciface.MuPAD.Pro.v4.02
SCIPIO.B.2D.2003.Datecode.04022003
SEE_Building_LT_v2005_Build_57
Seemage.v3.2
SeisImager.Pickwin.v3.02.with.Plotrefa.v2.68
SEMCAD V1.8 
Serif.ImpactPlus.v5.0  2CD
SHARC_HARPOON_V3.1
Shop.Talk.CAD.CAM.v8.0
Si6000 Controlled Impedance Field Solver V3.0
SideFX Houdini Master v6.0 Final
SigView.v1.9.0.1
SilverScreen.Solid.Modeler.for.Developers.v7.36
Sigrity.Software.Suite.v1.0
SignatureCAD.Squiggle.v5.2.0
SignSoft.intelliBO.v3.6.2
Silencer_v2.1.0 灭音器(管)设计软件
SilverScreen.Solid.Modeler.for.Developers.v7.53
SIMCOM.WorldClock.v2.2.0.5
SIMCOM.SimViews.v1.1.0.3
SIMetrix/Simplis 5.3
SimplyCam.v1.25.03
SimVector v3.0


应用软件 2014-01-07 14:47 发表评论

用dowhile0消除代码冗余一例

$
0
0
今天要改一个旧函数,其结构大致如下
   void *= new xxxx;//申请资源
   BOOL bRet = TRUE;

   
// 函数失败后错误处理
   bRet = fun1();
   
if(!bRet) 
   {
      delete p;   
      p 
= NULL;
      
return false;
   }

   bRet 
= fun2();
   
if(!bRet) 
   {
      delete p;   
      p 
= NULL;
      
return false;
   }

   bRet 
= fun3();
   
if(!bRet) 
   {
      delete p;   
      p 
= NULL;
      
return false;
   }

   
// .......

   
// 最后释放资源并返回
    delete p;   
    p 
= NULL;
    
return true;
这时候可以引入goto 改成
   bRet = fun1();
   
if(!bRet) 
   {
       
goto errHandle;
   }
   
   
//.......

errHandle:
   delete p;
   p 
= NULL;
   
return false;
但由于goto的特殊性,还是尽量避免。今天改函数时忽然想到可以利用while 中的break来实现第一段代码中相同的资源管理效果,上网查证后,改成如下:
do
{  
   bRet 
= fun1();
   
if(!bRet) 
   {
       
break;//资源管理效果同第一段代码的方式
   }

   bRet 
= fun1();
   
if(!bRet) 
   {
       
break;
   }

   bRet 
= fun1();
   
if(!bRet) 
   {
       
break;
   }
   
   
//......

}
   delete p;
   p 
= NULL;
   
return bRet;



NWAO 2014-01-07 15:00 发表评论

Zoom to Point by PDMS PML

$
0
0

Zoom to Point by PDMS PML

eryar@163.com

在PDMS中Centre on Selection的功能一定要选择一个有position属性的element,有人想不选择element直接缩放到指定的坐标点,通过打开跟踪其代码,实现了这个一样函数z2p,直接调用此函数,并输入需要缩放的坐标值,就可以将指定点作为视图中心啦。

wps_clip_image-30597

Figure 1.1 Centre on Selection

PML实现代码如下图所示,PML程序的配置方法可以通过搜索《AVEVA PML快速入门引导》,其中有详细说明。

wps_clip_image-21200

程序的使用方法为在命令窗口(Command Window)中输入命令:

!!z2p(100, 200, 300)

其他使用方法如下图所示:

wps_clip_image-27058

Figure 1.2 Use z2p to Zoom to the Current Element

使用中有任何问题,都可以与我联系,邮箱:eryar@163.com

PDF Version and PML code: Zoom to Point by PDMS PML



eryar 2014-01-07 20:01 发表评论

C++ 之 Memory Barrier

$
0
0
本人博客地址:http://www.cppblog.com/pwq1989/ 


今天群里姐夫推荐了个C++的Actor框架 Theron,就看了下源码,注释比代码还多,业界良心。

源码我还没看完,就看到了他的一个叫StringPool的类,里面通过Ref来生成单例(Singleton),看了下
static void Reference();这个函数实现的时候,突然脑洞一开,为啥没有Memory Barrier(wiki)。

先贴一下他的代码:
 1 StringPool *StringPool::smInstance = 0;
 2 Mutex StringPool::smReferenceMutex;
 3 uint32_t StringPool::smReferenceCount = 0;
 4 
 5 
 6 void StringPool::Reference()
 7 {
 8     Lock lock(smReferenceMutex);
 9 
10     // Create the singleton instance if this is the first reference.
11     if (smReferenceCount++ == 0)
12     {
13         IAllocator *const allocator(AllocatorManager::GetCache());
14         void *const memory(allocator->AllocateAligned(sizeof(StringPool), THERON_CACHELINE_ALIGNMENT));
15         smInstance = new (memory) StringPool();
16     }
17 }

我们先不讨论这一段代码,先看看下面的:

大家如果看过C++的Double Check Lock不可靠的这篇paper(地址),作者给出的解决方案是这样的:
 1     // First check
 2     TYPE* tmp = instance_;
 3     // Insert the CPU-specific memory barrier instruction
 4     // to synchronize the cache lines on multi-processor.
 5     asm ("memoryBarrier");
 6     if (tmp == 0) {
 7         // Ensure serialization (guard
 8         // constructor acquires lock_).
 9         Guard<LOCK> guard (lock_);
10         // Double check.
11         tmp = instance_;
12         if (tmp == 0) {
13                 tmp = new TYPE;
14                 // Insert the CPU-specific memory barrier instruction
15                 // to synchronize the cache lines on multi-processor.
16                 asm ("memoryBarrier");
17                 instance_ = tmp;
18         }
19     return tmp;

其实这两个Memory Barrier不用全屏障,读屏障rmb()就好了。第二个需要一个写屏障wmb()。

我们都知道mb这个东西是为了防止CPU级别的指令乱序被发明出来的,(另一个是编译器级别的,和本篇文章没有多大关系,有兴趣大家可以去研究下),实现也是由平台相关的特殊指令(mfence这样的)组成的。

之所以要写成这样,第二个mb()是为了防止在构造函数完成之前提前对目标赋值,但ctor还没完成,就被挂起,然后第二个线程访问的时候,认为已经构造完毕,进而使用不完整的数据引发奇怪的错误。

(第一个rmb()的作用我觉得是可有可无,加上可能是为了效率把(猜),强制刷新读取instance_的值,防止进入第一个check去竞争那个锁,不加也是不会有错的,因为POSIX规定mutex之间必须保持内存的可见性,所以是不需要担心读到脏数据) <-- 这段是个人意见,欢迎修正。

下面就是我趴了半下午才想明白的问题。。。为啥Theron中那段代码(第一段代码)不需要在lock中添加mb(),因为我往下翻了下,发现StringPool的构造函数是空的。。根本就没有内存的写入,当然就不需要wmb()了。


可见,C++的多线程编程,好难



右席 2014-01-08 00:54 发表评论

Google maps APIs basic使用介绍

$
0
0

作为一个技术人员,我一直是谷歌的忠实用户,在这里简单介绍一下地图API基础的使用介绍。

1.HTML的文档类型需为HTML5

因为Google maps APIs采用的是HTML5才支持的基于javascript的canvas,所以,必须将文档类型声明为HTML5:

  1. <!DOCTYPE html>  

至于是大写还是小写,无所谓,习惯上,将‘DOCTYPE’大写。无法理解该声明的老旧的浏览器(比如IE9以下的IE浏览器)会将其忽略,并使用“兼容模式”来显示其内容。

2.定义显示地图得DIV的

  1. #map_canvas { height: 100% }  

百分比继承上级容器的最大宽度,或者,你自己设置一个,高度自定义吧! 在HTML的BODY的适当位置写上:

  1. <div id="map_canvas" style="width: 100%; height:600px"></div>  

 

3.引入Google maps APIs

  1. <script src="http://maps.google.com/maps/api/js?sensor=false"  
  2.             type="text/javascript"></script>  

或者:

  1. <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>  

V2版本的API是需要注册并获取KEY的,V3就不用了! 参数中的sensor的值可选布尔值,这个布尔值确定是否在GPS中定为用户/访客的位置,大多数情况下是用不上的,所以,上面的例子中将其设为false。

4.异步加载Google map

Google maps 官方的示例:https://developers.google.com/maps/documentation/javascript/examples/map-simple-async?hl=zh-cn

  1. <!DOCTYPE html>  
  2. <html>  
  3.   <head>  
  4.     <title>Asynchronous Loading</title>  
  5.     <meta name="viewport" content="initial-scale=1.0, user-scalable=no">  
  6.     <meta charset="utf-8">  
  7.     <style>  
  8.       html, body, #map-canvas {   
  9.         height: 100%;   
  10.         margin: 0px;   
  11.         padding: 0px   
  12.       }   
  13.     </style>  
  14.     <script>  
  15. function initialize() {   
  16.   var mapOptions = {   
  17.     zoom: 8,   
  18.     center: new google.maps.LatLng(-34.397, 150.644)   
  19.   };   
  20.   
  21.   var map = new google.maps.Map(document.getElementById('map-canvas'),   
  22.       mapOptions);   
  23. }   
  24.   
  25. function loadScript() {   
  26.   var script = document.createElement('script');   
  27.   script.type = 'text/javascript';   
  28.   script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&' +   
  29.       'callback=initialize';   
  30.   document.body.appendChild(script);   
  31. }   
  32.   
  33. window.onload = loadScript;   
  34.   
  35.     </script>  
  36.   </head>  
  37.   <body>  
  38.     <div id="map-canvas"></div>  
  39.   </body>  
  40. </html>  

我觉得不够实用,实用些的例子:

  1. <script>  
  2. //Modified by suoling.net   
  3. if(1==1){var strat1=40.0823;   
  4. var strat2=116.6032;}   
  5. //var strat11=document.getElementById('test11');   
  6. //var strat12=document.getElementById('test12');   
  7. var end1=22.320;   
  8. var end2=113.937;   
  9. var midd1=(strat1+end1)/2;   
  10. var midd2=(strat2+end2)/2;   
  11. var line;   
  12.   
  13. function initialize() {   
  14.   var mapOptions = {   
  15.     disableDefaultUI: true,   
  16.     center: new google.maps.LatLng(midd1, midd2),   
  17.     zoom: 4,   
  18.     mapTypeId: google.maps.MapTypeId.ROADMAP   
  19.   };   
  20.   
  21.   var map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);   
  22.   //var mapaaa = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);   
  23.   var lineCoordinates = [   
  24.     new google.maps.LatLng(strat1, strat2),   
  25.     new google.maps.LatLng(end1, end2)   
  26.   ];   
  27.   
  28.   // Define the symbol, using one of the predefined paths ('CIRCLE')   
  29.   // supplied by the Google Maps JavaScript API.   
  30.   var lineSymbol = {   
  31.     path: google.maps.SymbolPath.CIRCLE,   
  32.     scale: 5,   
  33.     strokeColor: '#395796'   
  34.   };   
  35.   
  36.   // Create the polyline and add the symbol to it via the 'icons' property.   
  37.   line = new google.maps.Polyline({   
  38.     path: lineCoordinates,   
  39.     icons: [{   
  40.       icon: lineSymbol,   
  41.       offset: '100%'   
  42.     }],   
  43.     map: map   
  44.   });   
  45.   
  46.   animateCircle();   
  47. }   
  48.   
  49. // Use the DOM setInterval() function to change the offset of the symbol   
  50. // at fixed intervals.   
  51. function animateCircle() {   
  52.     var count = 0;   
  53.     window.setInterval(function() {   
  54.       count = (count + 1) % 200;   
  55.   
  56.       var icons = line.get('icons');   
  57.       icons[0].offset = (count / 2) + '%';   
  58.       line.set('icons', icons);   
  59.   }, 20);   
  60. }   
  61. //初始化显示及异步加载   
  62. var inputtxt= document.getElementById('s2');       
  63. google.maps.event.addDomListener(window, 'load', initialize);   
  64. google.maps.event.addDomListener(inputtxt, 'change', initialize);   
  65. </script>  

 

5.Google maps 设置项

  1. var mapOptions = {   
  2.   center: new google.maps.LatLng(40.0823, 116.6032),   //纬度和经度确定默认的中心
  3.   zoom: 4,   //缩放等级1-17,
  4.   mapTypeId: google.maps.MapTypeId.ROADMAP   //地图类型
  5. };  

这个对象用来包含Google map初始化所需的变量,上面示例的位置是北京首都国际机场。 其中,地图类型,可选:

  1. ROADMAP,用于显示 Google 地图的默认、普通 2D 图块。   
  2. SATELLITE,用于显示拍摄的图块。   
  3. HYBRID,用于同时显示拍摄的图块和重要地图项(道路、城市名)的图块图层。   
  4. TERRAIN,用于显示自然地形图块,其中包含海拔和水体地图项(山脉、河流等)。  

 

  1. MapTypeId.ROADMAP,用于显示默认的道路地图视图   
  2. MapTypeId.SATELLITE,用于显示 Google 地球卫星图片   
  3. MapTypeId.HYBRID,用于同时显示普通视图和卫星视图   
  4. MapTypeId.TERRAIN,用于根据地形信息显示实际地图。  

另外,可有: disableDefaultUI-布尔值,可选,用于确定是否使用Google map的默认UI; 6.创建地图对象

  1. var map = new google.maps.Map(document.getElementById("map_canvas"),   
  2.     mapOptions);  

google.maps.Map类的对象定义网页上的一个地图。



老何 2014-01-08 11:04 发表评论

同时安装sql2005 2008后发现程序连不上数据库了

$
0
0
首先数据库定位分几块:机器名-实例名-数据库名

但是安装完成之后发现连不上08的数据库,最开始是应为没有填写实例名字,后来用ip/实例名还是连不上,但是pcname/实例名能连上。

排查之后是08的服务器没有打开tcp/ip
打开以后发现服务启动不了,应为端口冲突了,解决以后发现程序能上但是查询分析器不能上

查询分析器连接字符串应该是ip,port/实例






Enic 2014-01-08 11:36 发表评论

羽毛球

游戏音效素材大全下载 - 3000首高清无损-按分类整理


施放魔法,法术游戏音效素材下载 - 共699首

$
0
0
共699首高清无损音效素材下载



游戏魔法音效素材下载下载地址是:http://www.2gei.com/sound/magic/

音效目录列表:
中水弹,分散持续炸裂,坠落水球,大水球,大火焰爆炸,大火球,大闪电,小飞刃,小飞弹,小龙卷风,恢复,持续散发魔法,持续散弹,散弹,水弹,水球,激光,火焰爆炸,火球,爆炸,短距离发射,积攒,积攒分散,起始风,起始飞弹,超大坠落水球,超大闪电,迅速积攒,闪电炸裂,风韧,飞弹,飞弹2,魔法装甲


无力 2014-1-7

$
0
0
昨天开通了云主机,但效果很不理想,1G的文件传了24小时还没有完成。
渺茫中……,不知道未来要怎么走,定位好难啊!!!

小麦 2014-01-08 19:26 发表评论

Window Ghosting

$
0
0
     摘要: 在XP时代我们的程序没有响应后只能通过任务管理器强制杀掉,但是Vista之后情况变了, 我们仍然可以拖动失去响应的窗口,甚至可以尝试最小化和关闭窗口, 我们把这个特性叫住Window Ghosting。
  阅读全文

Richard Wei 2014-01-08 21:26 发表评论

(转载)如何在网站上使用Favicon

$
0
0

Favicon是favorites icon的缩写,也称为website icon(网页图标)、page icon(页面图标)或url icon。Favicon是与某个网站或网页相关联的图标。网站设计者可用多种方式创建这种图标,目前几乎所有浏览器都支持此功能。浏览器可以将 favicon显示于浏览器的地址栏中,也可显示于收藏夹列表的网站名前,还可以放在标签式浏览器界面中的页标题前面。

最初,定义一个favicon的方法是将一个名为“favicon.ico”的文件置于网络服务器的根目录下,Internet Explorer的收藏夹可以自动显示该文件。后来出现了一种更为灵活的方法,即使用HTML来为任何一个网页指示其图标所存储的位置。这种方法是通过在 页面的<head>部分添加link来实现的。这样,任何一个适当大小的(16×16像素或更大)的图像(不同浏览器使用不同的格式,总体来 说,ico格式比较通用)都可以用作favicon。现代些的浏览器现在也支持PNG(便携式网络图片)格式,和GIF(图形交换格式)动画图像格式。正 因此,网络服务器要接受很多对“favicon.ico”文件的请求,即使该文件根本不存在。网站管理员对此很不满,因为这样会增加大量的服务器日志记 录,并导致很多不必要的磁盘IO和CPU、网络资源等的占用。另一个常见的问题是,当清除浏览器的缓存后,favicon可能会消失。

Internet Explorer最早仅仅将favicon用于收藏夹(例如MSIE 6.0)。不过这好像与隐私有关,因为网站拥有者可以通过检查访问日志察看有多少人下载了favicon.ico文件,判断有多少人将他们的网站放入收藏 夹中。所以,在Internet Explore 7.0,以及很多其它的浏览器开始在每次访问时都将favicon显示在地址栏上,隐私也就不再是一个问题了。

Favicon在1999年就已经是标准了,不过随着时代的进步,多种设备和系统的出现,需要重新认识一下这个东西了。

Favicon通常是ico格式的文件,某些情况下,只需要在网站的相对根目录放一个favicon.ico就能解决问题,但是,这只是少数情况。

favicon的rel属性值,Internet Explorer 6-10 使用的是shortcut icon,HTML5使用的是icon。所以

  1. <!-- IE6-10 -->  
  2. <link rel="shortcut icon" href="path/to/favicon.ico">  

 

  1. <!-- 其它的现代浏览器-->  
  2. <link rel="icon" href="path/to/favicon.ico">  

 

对于其类型,如下:

  1. <!-- IE6+可用 -->  
  2. <link rel="shortcut icon" href="path/to/favicon.ico" type="image/vnd.microsoft.icon">  
  3.     
  4. <!--  IE6+可用-->  
  5. <link rel="shortcut icon" href="path/to/favicon.ico" type="image/x-icon">  
  6.     
  7. <!-- IE6+可用-->  
  8. <link rel="shortcut icon" href="path/to/favicon.ico">  

 

看到这里,有两个消息:好消息是好的现代的浏览器(顺便鄙视下IE)是支持png或gif格式的,坏消息是Chrome和Safari 使用的还是ico格式,也就是:

  1. <!-- Chrome, Safari, IE -->  
  2. <link rel="shortcut icon" href="path/to/favicon.ico">  
  3.     
  4. <!-- Firefox, Opera -->  
  5. <link rel="icon" href="path/to/favicon.png">  

好的,这里就有一个问题了:

ICO:包括多种分辨率(最常使用的是16×16和32×32,Mac OS X有时使用64×64和128×128)以及位深(比特每像素)(多数使用4、8、24 bpp,即16、256和1600万色);GIF:使用16×16,256色;PNG:使用16×16,256色或24位。

由于PNG格式的图标文件不包括像ICO图标favicon的多种分辨率,我们可以写出几个网站图标的声明和大小来处理这个问题:

  1. <link rel="icon" href="favicon-16.png" sizes="16x16">  
  2. <link rel="icon" href="favicon-32.png" sizes="32x32">  
  3. <link rel="icon" href="favicon-48.png" sizes="48x48">  
  4. <link rel="icon" href="favicon-64.png" sizes="64x64">  
  5. <link rel="icon" href="favicon-128.png" sizes="128x128">  

 

Firefox 和 Safari 会使用最后声明的(按声明顺序);Mac版的Chrome 会使用任一个32×32 的ico(忽略掉16x16的);Windows的Chrome会使用最先声明的16×16的ico文件;对于Chrome,如果没有它用的 Favicon,那么,它会使用第一个favicon。Firefox和Safari浏览器则完全相反。

Opera则完全是随机的。来说说IE吧:IE8-10会第一次载入页面时载入favicon,IE7在第一次载入页面的时候不显示 favicon,重复的浏览才会让它出现favicon;更差劲的是,IE6仅仅会载入你加入收藏夹并且重新打开的网站的favicon,IE6会再清理 浏览器缓存的时候,删除网站的favicon,并且在你下次收藏那个网站之前,它永远不会显示favicon了。当然了,你可以用js搞定IE6:

  1. <!-- 还有人在用 IE6啊! -->  
  2. <!--[if IE 6]><script>(new Image).src="path/to/favicon.ico"</script><![endif]-->  

 

对于苹果的IOS和安卓系统来说:

  1. <!-- For iPad with high-resolution Retina display running iOS ≥ 7: -->  
  2. <link rel="apple-touch-icon-precomposed" sizes="152x152" href="apple-touch-icon-152x152-precomposed.png">  
  3. <!-- For iPad with high-resolution Retina display running iOS ≤ 6: -->  
  4. <link rel="apple-touch-icon-precomposed" sizes="144x144" href="apple-touch-icon-144x144-precomposed.png">  
  5. <!-- For iPhone with high-resolution Retina display running iOS ≥ 7: -->  
  6. <link rel="apple-touch-icon-precomposed" sizes="120x120" href="apple-touch-icon-120x120-precomposed.png">  
  7. <!-- For iPhone with high-resolution Retina display running iOS ≤ 6: -->  
  8. <link rel="apple-touch-icon-precomposed" sizes="114x114" href="apple-touch-icon-114x114-precomposed.png">  
  9. <!-- For the iPad mini and the first- and second-generation iPad on iOS ≥ 7: -->  
  10. <link rel="apple-touch-icon-precomposed" sizes="76x76" href="apple-touch-icon-76x76-precomposed.png">  
  11. <!-- For the iPad mini and the first- and second-generation iPad on iOS ≤ 6: -->  
  12. <link rel="apple-touch-icon-precomposed" sizes="72x72" href="apple-touch-icon-72x72-precomposed.png">  
  13. <!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: -->  
  14. <link rel="apple-touch-icon-precomposed" href="apple-touch-icon-precomposed.png">  

 

写这篇文章是因为看到国外的好多出售的HTML模板中,就Favicon,只写了一句话,仅供IE用的,所以写了这篇文章。



老何 2014-01-09 10:51 发表评论

Trolltech Qt Commercial v4.4.0 1CD

$
0
0
Texas.Instruments.OMAP.v2.ISO 1CD
Timing.Designer.Professional.v5.303.WINNT2K 1CD
Trolltech Qt Commercial v4.4.0 1CD
 
MULTSIM v10.1(中文版,电路设计套件 电路图捕捉, SPICE仿真和PCB布局) 
Ultiboard 2001 1CD(multsim2001的PCB工具)
ULTImate Technology Ultiboard v5.72-ISO 1CD
VeriTools.Undertow.v9.0.DateCode.20020408 1CD
Workview Office v7.5 1CD
 
Zeland IE3D v14.10 1CD
Zeland IE3D and Fidelity v9.0(时域有限差分全三维电磁场仿真软件包)
Zeland.Product.Suite.v12 1CD(平面和三维电磁场仿真与优化软件包)
      
Electronics Workbench产品:
Electronics.Workbench.Ultiboard.v9.0.155 1CD(印刷电路板设计工具)
Electronics.Workbench.Ultiroute.for.Ultiboard.v9 1CD(轻松的完成大规模继集成电路,多层PCB板及类似于
                                                      BGA封装模式的多针脚电子元件的设计)
Electronics.Packaging.Designer.v7.2 1CD(设计复杂的电路板,有多种软件命令,可以使用EPD创建组建放置于你的设计中)
 
Multisim v10.1-ISO 1CD(中文汉化版,电子电路设计、信号分析)
Multisim 2001增强专业版汉化文件
Multisim 2001简明教程(中文)
 
EMSS产品:
FEKO v5.4 1CD(复杂形状三维物体的电磁场分析软件)
FEKO v5.4 Win64 1CD
FEKO 5.2 中文手册
FEKO 视频教学
 
SuperSpice产品:
SuperSpice v2.2.147 1CD(一款全自动的SPICE软件 )
 
Polar SB200a Professional v6.0 1CD(印刷电路板设计、测试系统)
Polar.SI9000E.Field.Solver.v6.00 1CD(印刷电路板阻抗计算与设计工具)
Polar.Instruments.SI8000.v6.1.0.WinALL 1CD(印刷电路板阻抗计算与设计工具)
Polar.Instruments.SI9000.v7.10.WinALL 1CD(新的Si9000传输线场解决方案整合了快速精确的无损失和独立于频率的PCB传输线建模) 
 
QCAD v29.0 Win9xNT 1CD (全面的电路设计软件,它包括电路图以及PCB(印刷电路板)模块,
                        电路图模块支持简单层次,复杂层次)
TrepCAD St v3.3.1 1CD
 
CAM Expert v2.0.4.8 1CD(QCAD的扩展工具。可以自动生成G-Code, HP/GL以及其它格式)
 
CAMCAD & Translator v4.3.39 1CD
RSI CAMCAD Pro v4.4.024 1CD(CAD/CAM辅助软件,用来进行数据的预处理以及PCB板的设计)
 
Ariel.Performance.Analysis.System.v2002.Rev1 1CD
Circuit.Shop.v2.03.WinALL 1CD(图形化CAD电路设计工具)
FpgaExpress v3.5.1 Altera Oem 1CD
Holophase.CirCAD.v4.20e(较简单的电路图设计软件)
Microsim Design Center v5.1 1CD
SB200.StackUp.Builder.v6.2 1CD(用于快速建立电路板层的专业工具)
SB200.StackUp.Viewer.v6.2 1CD
Pulsonix v4.6 1CD(电子电路设计软件)
WinQcad v31.0 Win9x_NT 1CD(一款完善的电子线路设计系统,拥有图式控制平台与PCB(印刷电路板)设计两大模块,二者可单独或合并使用)
 
色环电阻计算软件01 1CD
世界三极管查询系统 V1.5 1CD
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■
*****************************************************************
好得行业软件网提供各个行业专业软件,所有软件均为完整版本,模块齐全,详细请咨询
TEL:13978229035               QQ:508925688 
Email: ywcwsoft@sohu.com     ywcwsoft@sina.com      ywcwsoft@126.com
好得行业软件网 www.haodesoft.com
点击咨询:http://haodesoft.53kf.com
请使用Ctrl+F 键来查询您所需软件,找到后联系我们QQ或是邮件,我们会第一时间为您回复
■□■□■□■□本廣告長期有效■□■□■□■□■□■□■□■□■□■□■□■□ 
ALTERA产品:
Altera Max Plus II 10.2 1CD
Altera.QUARTUS.II.v8.1-ISO 1DVD(数字系统设计,是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具)
Altera.QUARTUS.II.v8.0.incl.SP1.Linux-ISO 1DVD
Altera.QUARTUS.II.Nios.II.Embredded.Suite.v8.1.Windows-ISO(嵌入式开发)
Altera.QUARTUS.II.v8.0.Modelsim.v6.1g-ISO 1CD
Altera.QUARTUS.II.DSP.Bulider.v8.1-ISO 1CD
Altera.QUARTUS.II.Megacore.IP.Library.v7.2.SP3.Full.Working-ISO 1CD
Altera.Quartus.II.v5.0.Linux64-ISO 2CD
 
Coventor产品
CoventorWare v2004 1CD(MEMS系统设计、制造和模拟软件)
 
Visionics产品
Visionics.EDWinXP.Professional.v1.61 1CD(电路设计工具,可以用来进行PCB的布局设计和编辑)
 
CADSOFT产品:
Cadsoft EAGLE Professional v5.30 1CD(设计印刷电路板(PCB)的软件)
Cadsoft EAGLE v4.13 Professional Bilingual for Linux 1CD(设计印刷电路板(PCB)的软件)
 
Accel-EDA v15.0 1CD
AdLabPlus.v3.0 1CD(电气工程软件,高级电机工程实验室。拥有20多个特性工具专为设计网络、传输线、变压器等设计)
Adlab.v2.31.WIN9X_NT_2K 1CD(电气工程软件,拥有20多个特性工具专为设计网络、传输线、变压器等设计)
B2.Spice.AD.Professional.v5.1.8 1CD(多模式模拟的电子自动化设计软件,纯数字模拟,快速精确,拥有功能强大的使用界面)
 
Comsystems.Integra.EDA.Tools.v4.0.SE.Pro 1CD(简体中文电路软件)
CSmith.v2.7(一个有许多高级功能的电机工程的制图软件,它包括:内含电气元件,S-参数块和和可利用的晶体元件,
            易于修改、布局、载入及保存电路图,输出S-参数块及完整的电路图等等)
DipTrace.v1.40 1CD(是一套完整的印刷电路板设计系统)
Eagle.PCB.v4.09R2-ISO 1CD
MemsCap.Mems.Pro.v4.0-ISO 1CD(微机电系统软件,包括编辑、设计规则校验、块放置和布线、3维模型生成和3维可视化)
Meta Post v3.3.1(带有ANSYS和METApsot的LS-DYNA的前后处理器)
 
MAX+PLUS II v10.2 完全版 1CD(英文版 ·专业数字集成电路设计软件最新版)
MAX+PLUS II v10.23 最新升级补丁
MAX+PLUS II 开发工具包
MAX+PLUS II 中文快速入门
MAX Plus II 教程
 
PSoC.Designer.Incl.C.Compiler.v4.0  1CD(高效能、可现场编程的混合讯号数组,针对消费性、工业、办公室
                                        自动化、电信、以及汽车等应用领域提供可量产的嵌入型控制功能)
Unsorted产品:
Modbus OPC Server v2.7 1CD
ModScan 32 v4.A00-04 1CD
ModSim 32 v4.A00-04 1CD
 
美国PTI公司产品:
PSS/E v30.0.1 破解版 1CD(大型电力系统仿真计算软件)
PSS E v30.0.2 Update 1CD(基本解决了30.0的BUG)
PSS/E 中文操作手册
PSS/E 入门视频教程
 
加拿大马尼托巴产品:
PSCAD v4.20-ISO  1CD(一个快速、灵活和准确的电器设备和电力系统的电磁暂态仿真专业软件)
PSCAD v4.20 用户手册(英文版)
 
CYME International产品:
Cyme.Cymcap.v4.6.R2 1CD(电力电缆安装载流容量和温升计算的工具) 
Cyme.Cymdist.v4.7.R6 1CD(对平衡或者不平衡的三相、两相、单相的电力系统进行分析的工具软件)
CYME.Cymgrd.v6.3.R7 1CD
Cyme.Cymtcc.v4.5.R8 1CD(电力系统保护装置协调进行分析与研究的工具软件)
Cyme.Psaf.v3.1.R1.11 1CD(整合性电力系统分析软体系列,它的基本架构系独立于模拟模组的
                         型态与数量, 这些家族成员 ( 模拟模组 ) 都共用一个整合的电
                         网设备资料库。 PSAF 可执行广泛的电力系统分析工作:如,电力
                         潮流分析、紧急事故分析、电动机启动分析、短路故障分析、暂态
                         稳定度分析、谐波分析)
CGI CYME产品:
AutoTRAX EDA v9.20 1CD(电子线路板布线设计软件,它提供了实施当今复杂的电子PCB设计应必备的所有高级工具)
CCS 2.2 for C6000-ISO 1CD
CCS for PIC 3.227 1CD
CirMaker v6.2C 1CD(继电器设计软件)
Edsa Technical 2000 SP3.5 Rev1a-ISO 1CD(电力系统分析)


应用软件 2014-01-09 10:55 发表评论
Viewing all 7880 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>