相关疑难解决方法(0)

字符串前面的'L'在C++中意味着什么?

this->textBox1->Name = L"textBox1";
Run Code Online (Sandbox Code Playgroud)

虽然它似乎没有L,但前缀的目的是什么?它的使用方式对于核心C程序员来说甚至都没有意义.

c++

152
推荐指数
6
解决办法
8万
查看次数

如果目录不存在,请创建一个目录

在我的应用程序中,我想将文件复制到另一个硬盘,所以这是我的代码:

 #include <windows.h>

using namespace std;

int main(int argc, char* argv[] )
{
    string Input = "C:\\Emploi NAm.docx";
    string CopiedFile = "Emploi NAm.docx";
    string OutputFolder = "D:\\test";
    CopyFile(Input.c_str(), string(OutputFolder+CopiedFile).c_str(), TRUE);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

执行此操作后,它会在D:HDD中显示一个文件testEmploi NAm.docx 但我希望他创建测试文件夹(如果它不存在).

我想在不使用Boost库的情况下这样做.

c++ windows directory copy file

55
推荐指数
7
解决办法
17万
查看次数

类型为const char*的参数与"LPCWSTR"类型的参数不兼容

我试图在Visual Studio 2012中使用C创建一个简单的Message Box,但是我收到以下错误消息

argument of type const char* is incompatible with parameter of type "LPCWSTR"

err LNK2019:unresolved external symbol_main referenced in function_tmainCRTStartup
Run Code Online (Sandbox Code Playgroud)

这是源代码

#include<Windows.h>

int _stdcall WinMain(HINSTANCE hinstance,HINSTANCE hPrevinstance,LPSTR lpszCmdline,int nCmdShow)
{

    MessageBox(0,"Hello","Title",0);

    return(0);
}
Run Code Online (Sandbox Code Playgroud)

请帮忙

感谢致敬

c

17
推荐指数
3
解决办法
4万
查看次数

C++中字符串的L前缀

我有一个静态库.该库定义了以下功能

int WriteData(LPTSTR s)
Run Code Online (Sandbox Code Playgroud)

调用该函数的示例是

LPTSTR s = (LPTSTR) L"Test Data";   
int n = WriteData(s);
Run Code Online (Sandbox Code Playgroud)

WriteData成功返回0,失败时返回-1.

我正在编写动态DLL来导出此函数.

int TestFun(LPTSTR lpData)
{
   return  WriteData(lpData);
}
Run Code Online (Sandbox Code Playgroud)

C++测试应用程序结果

LPTSTR s = (LPTSTR) L"Test Data";   
TestFun(s);  //OK  return 0

LPTSTR s = (LPTSTR) "Test Data";    
TestFun(s);  //Fail  return -1
Run Code Online (Sandbox Code Playgroud)

我必须从ac#应用程序调用它.我假设我的DLL-Import签名是:

        [DllImport("Test.dll")]
        private static extern int TestFun(String s);
Run Code Online (Sandbox Code Playgroud)

我的问题非常简单如何从.Net调用它?如你所见,我可以控制

TestFun(LPTSTR lpData)
Run Code Online (Sandbox Code Playgroud)

但无法控制

WriteData(LPTSTR s)
Run Code Online (Sandbox Code Playgroud)

感谢大家的投入.到目前为止,我仍然坚持施法.我认为当我能够从用户那里获取输入并写下2行代替以下行时,我的问题将得到解决.

   LPTSTR s = (LPTSTR) L"Test Data"); //<= How can ii take input from user and 
    TestFun(s);  //OK  return 0
Run Code Online (Sandbox Code Playgroud)

.net c# c++ interop marshalling

7
推荐指数
2
解决办法
5430
查看次数

标签 统计

c++ ×3

.net ×1

c ×1

c# ×1

copy ×1

directory ×1

file ×1

interop ×1

marshalling ×1

windows ×1