string - 如何将字符串变量传递给需要 PChar 的函数?

标签 string delphi pchar

我有这个代码:

ShellExecute(Handle, 'open',
             'C:\Users\user\Desktop\sample\menu\WTSHELP\start.html',
             nil, nil, sw_Show);

如何用字符串变量替换第三个参数中的文字?如果我使用如下代码,它将无法编译。

var
  dir: string;

dir := 'C:\Users\user\Desktop\sample\menu\WTSHELP\start.html';
ShellExecute(Handle, 'open', dir, nil, nil, sw_Show);

最佳答案

我假设dirstring类型。然后

ShellExecute(Handle, 'open', PChar(dir), nil, nil, SW_SHOWNORMAL);

应该可以工作。事实上,编译器会告诉你这一点;它说的是类似的事情

[DCC Error] Unit1.pas(27): E2010 Incompatible types: 'string' and 'PWideChar'

(另请注意,当您调用 ShellExecute 时,您通常会使用 SW_SHOWNORMAL 。)

关于string - 如何将字符串变量传递给需要 PChar 的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15774302/

相关文章:

python - 如何在 Python 2.7 中编写正则表达式以返回字符串中的两个单词,并在它们之间使用下划线

c - 如何截断C char *?

delphi - 如何在delphi中为未发布但公共(public)的事件创建事件处理程序?

c++ - 将 vector<char>* 传递给函数 getnameinfo

c# - 将字符串从 Delphi 传递到 C# 返回 null。但是,当我从 Delphi 调用 Delphi 库时,它工作正常。如何从Delphi接收字符串

javascript - 如何修改字符串过滤器中输入的值

r - 将字符串向量转换为 R 中的数据帧

delphi - 使用 'dcc32 -JL' 编译时从另一个包中的另一个单元访问 Delphi 方法指针

delphi - Delphi 7 中的类变量

delphi - 德尔福DLL PChar