C++中的CreateProcess函数的问题

CreateProcess这个函数第2个参数到底是LPSTR类型的还是LPWSTR类型的?为什么我在编译Win32APPexe程序时候就是LPSTR类型的,而且一切正常(... CreateProcess这个函数第2个参数

到底是LPSTR类型的

还是LPWSTR类型的?

为什么我在编译Win32 APP exe程序时候就是LPSTR类型的,而且一切正常(正常编译)正常运行..

但是在Win32 APP DLL 程序中就要求转换成LPWSTR类型 否则编译时出错.
转换成LPWSTR类型后可以编译成功 但是编译好的程序运行到这里系统会报错..

我用的是Microsoft Visual Studio 2005

哪位高人指点小弟一下 也可以加我的QQ:2172897 验证:baidu
展开
 我来答
凭康适Bc
2006-10-29 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:142
采纳率:0%
帮助的人:114万
展开全部
我也遇到过这个问题.

原因是VC2005里把默认的字符串类型定为Unicode类型,VC2005以前的工程是多字节字符集,所以你生成以前的工程不会报错,而现在把以前工程里的代码复制到用VC2005生成的工程里时就会报错.

解决方法也很简单,在"项目->'工程名'属性->配置属性->常规->项目默认值->字符集"上选择 "使用多字节字符集" 就行了.

还有个方法就是不改"字符集"属性,用 _T("字符串内容") 宏或用 L"字符串内容" 定义所有工程里的字符串.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangtk1982
2006-10-29 · TA获得超过3742个赞
知道大有可为答主
回答量:3206
采纳率:100%
帮助的人:1413万
展开全部
老大,你自己看函数的原型形式吧。。。。。。。。。。。

WINBASEAPI
BOOL
WINAPI
CreateProcessA(
LPCSTR lpApplicationName,
LPSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCSTR lpCurrentDirectory,
LPSTARTUPINFOA lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
WINBASEAPI
BOOL
WINAPI
CreateProcessW(
LPCWSTR lpApplicationName,
LPWSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCWSTR lpCurrentDirectory,
LPSTARTUPINFOW lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式