现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

vs2005一些注意事项

2012-08-13 02:38 工业·编程 ⁄ 共 1654字 ⁄ 字号 暂无评论

1:写DLL的时候,由于debug和release默认情况下生成的名字一样,所以,如果要区分开来,除了在属性里进行设置,还要在def里面,注销该语句 ;LIBRARY      "JxDll",这样设置的内容才会生效!

修改DLL路径:    右键工程名-->属性-->配置属性-->常规, 右边有一个 "常规目录",修改为你要输出的DLL路径,eg: ..\OutPut修改DLL名称:    右键工程名-->属性-->链接器-->常规, 右边有一个"输出文件",默认为 $(OutDir)\$(ProjectName).exe,修改 '斜杠后面的内容即可' eg :$(OutDir)\JxDllD.dll

修改LIB路径和名称:右键工程名-->属性-->链接器-->高级,右边有一个导入库,修改为你要输出的LIB路径即可, eg ../Lib/JxDllD.lib.如果只修改DLL的路径,不修改LIB的路径,则LIB默认和DLL一样的;VS2005有时候不能完全编译,如果不行,可以试着把生成的整个文件夹都删除掉,这样往往都可以了,除非语句有问题!

2:

error C2665: 'operator new' : none of the 5 overloads can convert parameter 1 from type

2011-06-28 19:33

You'd better check if there's any annoucement like:

#define new DEBUG_NEW

before you include the STL header.

If YES,  move to be after your STL announcement.

DLL应用STL的时候,要注意放的位置,应该放在

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

的前面,这样就不会报错了!

在使用std命名空间库函数的时候,往往会出现类似于下面的警告:    warning C4996: strcpy was declared deprecated 对于这些问题,VC2005建议使用这些函数的更高级的安全版本,即在这些函数名后面加了一个_s的函数。这些安全版本函数使用起来更有效,也便于识别,如:strcpy_s,calloc_s等。

当然,如果执意使用老版本、非安全版本函数,可以使用_CRT_SECURE_NO_DEPRECATE标记来忽略这些警告问题。办法是在编译选项 C/C++ | Preprocessor | Preprocessor Definitions中,增加_CRT_SECURE_NO_DEPRECATE标记即可。或在程序开头添加

    #pragma   warning(disable:4996)   //全部关掉 

    #pragma   warning(once:4996)      //仅显示一个

3: vs2005动态库(MFC规则DLL)

     引用C#写的webservice接口时,步骤为:右键工程属性--->添加WEB引用--->在URL里输入接口地址,然后点击'添加引用',就OK了!

     如果发生错误'SPROXY 错误 SDL1002...',则:右键工程属性--->配置属性-->常规,在项目默认值里,有一个'公共语言运行库支持',    默认是不开启的,即'无公共语言运行库支持'',选择开启即'公共语言运行库支持'(clr)' ;   还有,如果不用要宽字符,则'字符集' 选择 未设置'

4:MFC无论引用c#还是java写的webservice接口,方法都是一样的,  只是在调用的时候,变量类型的声明有区别而已.

  JAVA :

  WebRead::JaxRpcGetInfoService web1 ;
System::String^ s1 = gcnew System::String(strSearch); 
System::String^ s2 = gcnew System::String(strServer); 
System::String^ s3 = web1.getMessage(s1,s2);

给我留言

留言无头像?