用Spring Boot HttpMessageConverter返回值为Null时如何处理

public class MessageConverter extends AbstractHttpMessageConverter {

@Override
protected boolean supports(Class<?> clazz) {
    return true;
}

public MessageConverter() {
    super(MediaType.ALL);
}

@Override
protected Object readInternal(Class<?> aClass, HttpInputMessage httpInputMessage) throws IOException, HttpMessageNotReadableException {
    return null;
}

@Override
protected void writeInternal(Object o, HttpOutputMessage httpOutputMessage) throws IOException {
    if (o instanceof ResultBody) {
        FileCopyUtils.copy(JSON.toJSONString(o).getBytes(), httpOutputMessage.getBody());
    } else {
        ResultBody body = new ResultBody(o);
        FileCopyUtils.copy(JSON.toJSONString(body).getBytes(), httpOutputMessage.getBody());
    }
}

}

@RequestMapping(value = "demo3", method = RequestMethod.GET)
@SystemType(Constants.SYSTEM_PLATFORM)
@NoNeedLogin
String demo3(@RequestParam(value = "str") String str) {
System.out.println(str);
return null;
}

    直接返回null的话就不走writeInternal函数。
    返回值之类为void时,也一样的

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
IOS开发中返回值为null时的处理
在IOS开发中,如果得到了null返回值很容易造成程序崩溃,null和nil的判断方法不同。
spring boot 接口返回值为null的属性,忽略
1、注解形式 @JsonInclude(JsonInclude.Include.NON_NULL) 2、yml配置文件 spring: jackson: default-property-inclusion: non_null
spring boot 接口返回值去掉为null的字段
spring boot 接口返回值去掉为null的字段 现在项目都是前后端分离的,返回的数据都是使用json,但有些接口的返回值存在 null或者&quot;&quot;,这种字段不仅影响理解,还浪费带宽,需要统一做一下处理,不返回空字段,或者把NULL转成“”,spring 内置的json处理框架是Jackson,对它配置后可以去除 Jackson Objec...
spring boot controller返回值的统一处理
  顾名思义,就是统一修改某些接口的返回值。在这之前,我们可能会发现我们的controller中有以下代码: @RequestMapping("/editor") @SysLog("编辑留言") public BaseResult editor(Feedback feedback) { BaseResult result = new BaseResult(); try { if(feedb...
字段值为Null时如何处理?
要实现如果不为空则 读取其值rn但这样不行rn Field1 = RsPG.Fields("诊断结果").Valuern If Field1 Is Null Thenrn rn Elsern strZDJG = strZDJG + RsPG.Fields("诊断结果").Valuern End Ifrn当当前记录"诊断结果"有字符串的时候,显示 Field1 Is Null 这行错;当"诊断结果"为空时,显示 strZDJG = strZDJG + RsPG.Fields("诊断结果").Value这行错.rn
fastjson处理返回值为null的问题
&amp;lt;mvc:annotation-driven&amp;gt; &amp;lt;mvc:message-converters register-defaults=&quot;true&quot;&amp;gt; &amp;lt;bean class=&quot;com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter&quot;&amp;gt; &amp;lt;...
SPFarm.local返回值为null
我有一个项目,目前SPFarm.local返回值为nullrnrn网上找到一些解决方案,有的是说没有数据库的权限,有的是说需要在X64的环境下编辑rnrn我都已经试过了,可还是返回nullrnrn请问SPFarm.local返回值为空还有什么可能?
@Value返回值为null
找遍网上所有答案,都没找到问题所在 最后发现,我写的工具类,写了构造函数。 原因:可能是构造函数的覆盖了,spring的@value的构造方法。 去掉构造函数就能获取到@Value的值  ...
request.getParameter()返回值为null
我的客户端为zhuce.jsp,服务器端为zhuce1.jsp。在客户端定义了 ,为什么在服务器端zhuce1.jsp中的函数request.getParameter("Sno")取不到值呢?rn代码如下:rnzhuce1.jsprn[code=HTML]<%@ page contentType="text/html; charset=GB2312" errorPage="" %>rn<%@ page import="java.sql.*" %>rn<%@ include file="Conn.jsp" %>rn<%rn String Sno=request.getParameter("Sno");rn String Sname=request.getParameter("Sname");rn String Ssex=request.getParameter("Ssex");rn String Sage=request.getParameter("Sage");rn String Sdept=request.getParameter("Sdept");rn Sname=getS(Sno);rn rn String sql="insert into student values('"+Sno+"','"+Sname+"','"+Ssex+"',"+Sage+",'"+Sdept+"')";rn tryrn String sq="select * from student where Sno='"+Sno+"'";rn ResultSet rs=getRs(sq);rn if(rs.next())rn out.print("2");rn elsern Exec(sql);rn out.print("1");rn rn catch(Exception e)rn out.print("0");rn rn%>[/code]rnrnrn[code=HTML]<%@ page contentType="text/html; charset=gb2312" import="java.sql.*" errorPage="" %>rnrn rn 用户注册rn rn rn 学号: 请输入9位学号,由数字组成rn 姓名: 请输入姓名rn 性别: 请输入性别,为男或女rn 年龄: 请输入年龄,为7到80rn 专业: 请输入专业rn rnrnrnrn [/code]
Type.GetInterface 返回值为null
接口 代码 rn[code=C#]rnnamespace IControlrnrn public interface Ictlrn rn event ChangeEventHandle OnChange;rn string INamern rn get;rn rn rn public delegate void ChangeEventHandle(Control c,string msg);rnrn[/code]rn控件代码rn[code=C#]rnusing System;rnusing System.Windows.Forms;rnusing IControl;rnnamespace Ctl_usercenterrnrn public partial class UC1 : UserControl, Ictlrn rn public UC1()rn rn InitializeComponent();rn rn public string name = "uc1";rn public ChangeEventHandle BtnClk;//实现接口的事件rn public string IName//实现接口定义的属性rn rn get return name; rn rn event ChangeEventHandle Ictl.OnChangern rn add BtnClk += value; rn remove BtnClk -= value; rn rn private void button1_Click_1(object sender, EventArgs e)rn rn BtnClk(this, "yes");rn rn rnrn[/code]rn主程序代码rnrn void addControl(string ControlName)rn rn tryrn rn Assembly assembly = Assembly.LoadFrom("Ctl_usercenter.dll");rn Type tp = assembly.GetType(); rn BindingFlags blasg = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance;rn [color=#FF0000] if (tp.GetInterface("Ictl") != null)[/color]rn rn object obj = tp.InvokeMember("", blasg | BindingFlags.CreateInstance, null, null, null);rn Control c = (Control)obj;rn foreach (Control item in pan_main.Controls)rn rn if (item != null)rn rn item.Hide(); //隐藏全部 rn rn else//控件集合等于空rn rn this.pan_main.Controls.Add(c);rn rn rn rn rn catch (Exception)rn rnrnrn rnrnrn主程序中执行道红色部分 是不能获取道接口 我也不知道错在哪里了 在练习实现插件模式 如果大家有更好的 例子 获取文档 不妨推荐给我 在此先谢谢大家 先看看这个错误吧!
ajaxpro返回值为null
1.查询数据库rn[AjaxPro.AjaxMethod]rn public dt GetCity(string name) rn DataTable dt = new DataTable();rn dt = opration.GetCity(name);rn return dt;rn rn可以成功的获取到数据,dt数据正确rnrn2.前台绑定rnfunction server()rn var s= web_ajax1.GetCity("gd");rn alert(s.value);rn rn问题:为什么弹出框提示为NULL,如果如果单纯的调用后台方法,而不访问数据库,返回值是正确的rn 例如:调用下面方法,返回值为asdfasdfrn[AjaxPro.AjaxMethod]rn public string GetCity(string name) rn string s="asdfasdf";rn return s;rn rn各位大侠,这个问题怎么解决?rnrnrn
Struts2+jsonlib+JQuery返回值为null
struts.xmlrn[code=XML]rnrn rn rn jsonObjectrn application/jsonrn truern falsern rn rnrn[/code]rnactionrn[code=Java]rnpublic class ProjectList extends ActionSupport rnrn private ProjectService projectService = new ProjectService();rnrn private JSONObject jsonObject;rnrn public ProjectService getProjectService() rn return projectService;rn rnrn public void setProjectService(ProjectService projectService) rn this.projectService = projectService;rn rnrn public JSONObject getJsonObject() rn return jsonObject;rn rnrn public void setJsonObject(JSONObject jsonObject) rn this.jsonObject = jsonObject;rn rnrn @Overridern public String execute() throws Exception rn List list = projectService.getAllProject(2);rn JSONArray jsonList = new JSONArray();rn for (Project p : list) rn JSONObject jo = new JSONObject();rn jo.put("id", p.getId());rn jo.put("name", p.getName());rn jo.put("contractNo", p.getContractNo());rn jo.put("levelStr", p.getLevelStr());rn jo.put("typeStr", p.getTypeStr());rn jo.put("statusStr", p.getStatusStr());rn jo.put("organizationStr", p.getOrganizationStr());rn jo.put("managerStr", p.getManagerStr());rn jsonList.add(jo);rn rn Map map = new HashMap();rn map.put("rows", jsonList);rn map.put("total", list.size());rn jsonObject = JSONObject.fromObject(map);rn if (jsonObject != null) rn System.out.println(jsonObject);rn System.out.println("success");rn return SUCCESS;rn else rn return INPUT;rn rn rn[/code]rnJSP[code=JScript]rn$.ajax(rn url :'main/projectList.do', //后台处理程序rn type:'post', //数据发送方式rn dataType:'json', //接受数据格式rn cache:false,rn complete:test, rn success:update_page //回传函数(这里是函数名)rn );rn rn function update_page (data) //回传函数实体,参数为XMLhttpRequest.responseTextrn data=eval('('+data+')'); rn alert(data);rn document.write(data);rn ;rn[/code]rn结果:undefined undefinedrnrn用IE9的网络 捕获查看 响应正文里有json数据,但是回调的data却是null。
findViewById 返回值为null
在main_fXXX.xml 里加了一个TextView rnrn[code=html][/code]rnrn然后在Activity的onCreat()方法里获取它,之后相关的代码报错,说是空指针, 设了断点之后发现findViewById 的结果为null.rnrn[code=java]@Overridern protected void onCreate(Bundle savedInstanceState) rn super.onCreate(savedInstanceState);rn setContentView(R.layout.activity_main);rnrn if (savedInstanceState == null) rn getFragmentManager().beginTransaction()rn .add(R.id.container, new PlaceholderFragment()).commit();rn rn rn TextView aaa=(TextView )this.findViewById(R.id.test);rn rn[/code]rnrn如果我把这句TextView aaa=(TextView )this.findViewById(R.id.test); 放到一个button的onClick()里面就不会是null.rn这是什么原因呢?困扰了好多天了,是因为setContentView(R.layout.activity_main) 这个方法是异步的吗? 没有加载完,所以执行TextView aaa=(TextView )this.findViewById(R.id.test); 的时候获取的null?
返回值(null)和<null>处理【空指针和野指针】
一、返回值为(null)判断:if (obj == nil) { NSLog(@"(null)"); }二、返回值为判断:if ([obj isEqual:[NSNull null]]) { NSLog(@"null"); }
spring boot 下对JSON返回值去除null和空字段
在开发过程中,我们需要统一返回前端json格式的数据,但有些接口的返回值存在 null或者&quot;&quot;这种没有意义的字段。不仅影响理解,还浪费带宽,这时我们可以统一做一下处理,不返回空字段,或者把NULL转成“”,spring 内置的json处理框架是Jackson。我们可以对它配置一下达到目的直接看代码,很简单./** * 〈返回json空值去掉null和&quot;&quot;〉 〈功能详细描述〉 * * @au...
spring boot静态处理
springboot在处理web静态请求上和springmvc在使用是有些不同的,同时还增加了一些新的特性。 目录 1.静态页面 2.动态页面 3.webjars 4.webjars-locator 5.静态资源版本管理 1.静态页面 springboot项目只有src目录,没有webapp目录,会将静态访问(html/图片等)映射到其自动配置的静态目录,主要有: src/mai...
Spring Boot 静态资源处理
Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration 中的配置各种属性。建议大家使用Spring Boot的默认配置方式,如果需要特殊处理的再通过配置进行修改。如果想要自己完全控制WebMVC,就需要在@Configuration注解的配置类上增加@EnableWebMvc(@SpringBootApplication 注解的程序入口类已经包含@
spring boot 接口返回值封装
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 spring boot 连接Mysql spring boot配置druid连接池连接mysql spring boot集成mybatis(1) spring boot集成mybatis(2) – 使...
[求助]C#自定义类型时,如何让返回值为NULL
比如我定义了一个类,需要一个参数,根据这个参数去数据库中寻找相应的记录,但如果记录不存在,想让这个类返回NULL值,这样我上层就可以根据这个类是否为NULL来判断了。rnrn请问如何实现?在构造函数中吗?
Spring Boot处理动态资源
<p>rn <span style="color:#000000;font-size:16px;">本套课程由CSDN学院与咕泡学院共同打造,主要会围绕</span><span style="color:#000000;font-size:16px;">Spring Boot初遇、基本常识、注解和源码分析以及进阶4个方面进行讲解。</span> rn</p>rn<p>rn <span style="color:#000000;font-size:14px;"><br />rn</span> rn</p>rn<p>rn <span style="color:#000000;font-size:16px;">即使你之前从来没有用过Spring Boot也没关系,课程会带领你从0到进阶一步步提升,让你对Spring Boot爱不释手,同时了解Spring Boot的原理和源码。</span> rn</p>
spring boot跨域处理
使用spring boot开发web应用时,有时会需要对跨域访问进行处理。本文包含了服务端跨域和客户端跨域的处理,对于json数据的处理包含了fastjson和jackson两种方式
Spring boot 跨域问题处理
1、跨域:前端请求后端处理符合的同源条件:即相同域名、端口、协议。如果以上条件有一个不符合,那么就会出现跨域问题2、解决方案(CORS)  2.1 CORS 协议以下参考链接:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS  2.1.1  常见HTTP响应的首部字段 (1)Access-Control-Al...
spring boot 跨域问题处理
1、 public class SimpleCrossFilter implements Filter {     @Override     public void init(FilterConfig filterConfig) throws ServletException {     }     @Override     public void doFilter(Ser
Spring Boot:请求的处理
一:SpringMVC工作流程 先来看一下流程图 SpringMVC的组件: Dispatch Servlet:前端控制器 Handler Mapping:映射处理器 Handler Adapter:适配处理器 Controller:控制器 View Resolver:视图解析器 SpringMVC的工作流程 请求先到达DispathcherServlet,DispathcherServl...
Spring Boot 跨域处理
浏览器出于对安全的考虑,不允许对当前域名之外的域名资源进行 AJAX 调用 什么情况下跨域 协议不同 主域名不同 端口不同 子域名不同 域名对应的ip不同 解决跨域配置(全局) @Configuration public class CorsContext implements WebMvcConfigurer { @Override public void addCorsMa...
Spring Boot的日志配置和处理
SpringBoot slf4j日志配置,SpringBoot动态修改日志级别,日志输出配置 SpringBoot默认选用slf4j,logback 框架 通过pom.xml文件的Dependency Hierarchy视图里面可以看出 一、日志级别(LogLevel) TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF (由低到高) spri...
Spring Boot处理静态资源
<p>rn <span>本套课程由CSDN学院与咕泡学院共同打造,主要会围绕</span>Spring Boot初遇、基本常识、注解和源码分析以及进阶4个方面。即使你之前从来没有用过Spring Boot也没关系,课程会带领你从0到进阶一步步提升,让你对Spring Boot爱不释手,同时了解Spring Boot的原理和源码。rn</p>
spring boot 静态资源处理
spring boot 秉承约定优于配置,spring boot在静态资源的处理上就已经默认做了处理。1.默认资源映射映射”/**”的路径到 /static (或/public、/resources、/META-INF/resources), ” /webjars/** 映射到 classpath:/META-INF/resources/webjars/<script type="text/jav
SPRING BOOT 跨域访问处理
问题场景:由于项目中使用到跨域访问,今天也得到高人指点,所以写出来分享给大家。可能是考虑到前后端分离,前端后端服务器不在一台机器上,出现这种跨域访问的情况。正常情况下本地访问是没有问题,但是遇到这种非同一台服务器的情况下,就会报错 Access-Control-Allow-Origin 。具体报错内容不记得了。问题解决方案一:采用添加拦截器的方式对请求添加跨域访问的头,允许跨域访问。 p
spring mvc之返回值的处理
文章目录HandlerMethodReturnValueHandlerRequestResponseBodyMethodProcessorHttpMessageConverter实现类MappingJackson2HttpMessageConverter HandlerMethodReturnValueHandler 先看看HandlerMethodReturnValueHandler的源码: p...
spring mvc 处理返回值
RequestResponseBodyMethodProcessor 中 handleReturnValue 方法 来处理返回值 public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, Nativ...
方法重载参数为null时处理方案
public class Demo02 { public void testDemo(String a , String b){ System.out.print(a + b); } public void testDemo(String a , Integer b){ System.out.print(a + "Integer" + b);
mybatis插入数据时处理为null的属性
在做项目的时候,数据库中的所有字段被设置为全都不能为null,但是在我们开发过程中,插入一些记录的时候,实体类中的一些字段如果页面没有传入,则默认就会被设置为null,这样的话,在执行插入语句的时候,数据库就会报错,说指定的列不能为null,这样数据就无法插入。 在网上找了一下,都没有这种处理的方式,但是找到了mybatis的类型转换,说的是在java中的类型和数据库中的类型不一致的时候,需要自
LoadLibrary()返回值为NULL,急!
在下在公司做的软件使用vc6平台进行开发,因为要使用到vs2008中的CImage类来保存图片,所以使用vs2008将CImage封装成一个CImage.dll,再由VC6的软件进行调用,调用代码如下:rnrn HINSTANCE hInst;rn typedef int (_stdcall *p_CImage)(HBITMAP, CString);//定义函数指针类型rn p_CImage CImage;rn hInst=LoadLibrary("CImage.dll");//动态加载Dllrn if (hInst==NULL)rn rnMessageBox("未找到CImage.dll");rn return;rn rn CImage=(p_CImage)GetProcAddress(hInst,"CImage");//获取Dll的导出函数rn CImage(bitmap, fileName);rn FreeLibrary(hInst);rnrn这个软件在所有XP系统和大部分Win7 32位系统都能运行,在少数Win7 32位系统不能正常运行,提示为找不到dll,hinst返回值为NULL,GetLastError为14001,使用相对路径、绝对路径、LPCSTR、LPCWSTR加载dll均不能成功,而同样的方法在xp和本身就能用的win7系统下就可以使用。rnrn看到网上有说关联的dll也要有,我使用depends查看,复制关联dll,将所有的红都变绿了,还是加载不上。rnrn有大神遇到过这种情况吗?求指教!
CListCtrl.SetImageList返回值总为NULL
定义了一个类变量:CImageList *m_img;rn.cpp中:rn CBitmap bitmap;rn BOOL B = bitmap.LoadBitmap(IDB_BITMAP1);rn m_img = new CImageList();rn BOOL b1 = m_img->Create(32,32,ILC_COLOR4,3,2);rn int k = m_img->Add(&bitmap,RGB(255,0,255));rn rn m_list.InsertColumn(0,_T("好友"),LVCFMT_LEFT,120);//m_list是一个列表框控件关联的变量rn CImageList* p = m_listClient.SetImageList(m_img,LVSIL_SMALL);rnrn为什么p的值总为null呢?
JackSon返回值为null的字段
说实话这个问题真的让我头疼,最终想到一个投机取巧的方法,下面且听我一一道来。 背景 因为mobile团队为了节省流量,所以架构组就把一些值为null或者""的字段给过滤掉了。 至于是怎么过滤掉值为null或者""的字段的方法如下。在application-local.yml里面加入如下全局配置 jackson: default-property-inclusion: non_null ...
json_decode返回值为NULL的解决方法
使用 json_last_error 判断error 值及对应错误原因。文档 如果为 3,可以使用如下方式过滤掉非 utf8 字符。 preg_match('/[\x00-\x1F\x80-\x9F]/u', $str, $match); // 将得到字符串 base64 转码即可找到该不可显示的特殊字符 找到特殊字符 \u001f 发现 mysql 在 json 字段中存入该字段会显示为可...
Direct3DCreate9( D3D_SDK_VERSION )的返回值为NULL!
Direct3DCreate9( D3D_SDK_VERSION )的返回值为NULL!,我的DirectX是9.0c,SDK是Microsoft DirectX SDK (April 2006),我刚学好DirectX,请各位好心人帮帮忙!rnrn全部代码如下:编译能够通过,通过断点设置,发现Direct3DCreate9( D3D_SDK_VERSION )的返回值为NULL!,编译能通过,但是却无法显示出窗口。rnrn/**-----------------------------------------------------------------------------rn * \brief 创建设备rn * 文件: CreateDevice.cpprn *rn * 说明: 创建D3D设备, 学习清除画面的方法.rn * rn *rn **-----------------------------------------------------------------------------rn */rn/// 使用的Direct3D9的首部rn#include rnrnrnrnrn/**-----------------------------------------------------------------------------rn * 全局参数rn *------------------------------------------------------------------------------rn */rnLPDIRECT3D9 g_pD3D = NULL; /// 创建D3D 设备的D3D对象参数rnLPDIRECT3DDEVICE9 g_pd3dDevice = NULL; /// 渲染中使用的D3D设备rnrnrnrnrn/**-----------------------------------------------------------------------------rn * Direct3D初始化rn *------------------------------------------------------------------------------rn */rnHRESULT InitD3D( HWND hWnd )rnrn /// 创建一个用来创建设备的D3D对象rn if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )rn return E_FAIL;rnrn D3DPRESENT_PARAMETERS d3dpp; /// 创建设备的结构体rn ZeroMemory( &d3dpp, sizeof(d3dpp) ); /// 必须调用ZeroMemory()函数将结构体清零.rn d3dpp.Windowed = TRUE; /// 创建窗口模式rn d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; /// 最有效的SWAP效果rn d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; /// 建立一个与当前显示模式相匹配的后置缓冲rnrn /// 按照以下设置,创建设备.rn /// 1. 使用缺省设置的显卡(大部分显卡都是一个).rn /// 2. 创建HAL设备(使用HW加速装置).rn /// 3. 顶点处理由支持所有显卡的SW创建(由HW创建性能更佳).rn if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,rn D3DCREATE_SOFTWARE_VERTEXPROCESSING,rn &d3dpp, &g_pd3dDevice ) ) )rn rn return E_FAIL;rn rnrn /// 处理设备状态信息时,从这里进行.rnrn return S_OK;rnrnrnrn/**-----------------------------------------------------------------------------rn * 删除初始化对象.rn *------------------------------------------------------------------------------rn */rnVOID Cleanup()rnrn if( g_pd3dDevice != NULL) rn g_pd3dDevice->Release();rnrn if( g_pD3D != NULL)rn g_pD3D->Release();rnrnrnrnrn/**-----------------------------------------------------------------------------rn * 绘图.rn *------------------------------------------------------------------------------rn */rnVOID Render()rnrn if( NULL == g_pd3dDevice )rn return;rnrn /// 将后置缓冲清除,同时设置为蓝色(0,0,255).rn g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );rn rn /// 开始渲染rn if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )rn rn /// 实际渲染命令列rn rn /// 结束渲染rn g_pd3dDevice->EndScene();rn rnrn /// 显示后置缓冲的画面!rn g_pd3dDevice->Present( NULL, NULL, NULL, NULL );rnrnrnrnrnrn/**-----------------------------------------------------------------------------rn * 窗口过程rn *------------------------------------------------------------------------------rn */rnLRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )rnrn switch( msg )rn rn case WM_DESTROY:rn Cleanup();rn PostQuitMessage( 0 );rn return 0;rnrn case WM_PAINT:rn Render();rn ValidateRect( hWnd, NULL );rn return 0;rn rnrn return DefWindowProc( hWnd, msg, wParam, lParam );rnrnrnrnrnrn/**-----------------------------------------------------------------------------rn * 本程序的起始地址rn *------------------------------------------------------------------------------rn */rnINT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )rnrn /// 注册窗口类rn WNDCLASSEX wc = sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, rn GetModuleHandle(NULL), NULL, NULL, NULL, NULL,rn "D3D Tutorial", NULL ;rn RegisterClassEx( &wc );rnrn /// 创建窗口rn HWND hWnd = CreateWindow( "D3D Tutorial", "D3D Tutorial 01: CreateDevice", rn WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,rn GetDesktopWindow(), NULL, wc.hInstance, NULL );rnrn /// Direct3D初始化rn int j=SUCCEEDED( InitD3D( hWnd ) ) ;rn if(j )rn rn /// 显示窗口rn ShowWindow( hWnd, SW_SHOWDEFAULT );rn UpdateWindow( hWnd );rnrn /// 消息循环rn MSG msg; rn while( GetMessage( &msg, NULL, 0, 0 ) )rn rn TranslateMessage( &msg );rn DispatchMessage( &msg );rn rn rnrn /// 删除注册的类rn UnregisterClass( "D3D Tutorial", wc.hInstance );rn return 0;rnrnrnrnrn
关于数据库返回值为Null的问题
关于数据库返回值为Null的问题rnrnint a = row.Field("XXX")rnrn如果数据库中的XXX字段为NULL,这句话应该怎么写?rn不能每个语句都写上:row.Field("XXX") == null ? 默认值 : row.Field("XXX")rnrn这样写也太麻烦了,有简单点的方法没有?rn
FindWindow返回值始终为NULL
最近在做SPI防火墙,写了一个关于LSP的dll文件,现在的问题是:开机启动以后再点击运行我的防火墙主程序(MyFireWall.exe),dll可以通过FindWindow函数获得主程序的句柄。但是我将防火墙设置开机启动(在注册表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run中添加我的主程序)后,主程序可以运行,但为什么在dll文件中调用FindWindow却始终返回NULL,开始怀疑是开机启动后防火墙的主对话框还未生成,我便通过一个循环语句来等待主对话框生成,但结果FindWindow始终返回为NULL,循环语句如下:rnrng_hWnd = ::FindWindow(L"#32770", L"MyFireWall");rnwhile (g_hWnd == NULL)rnrn Sleep(500);rn g_hWnd = ::FindWindow(L"#32770", L"MyFireWall"); rnrnrn为什么点击运行和开机启动运行的结果不一样呢?rnrn这个问题已经折磨我好几天了,敬请各位牛人帮助解答,不胜感激!
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池