小编mar*_*rcp的帖子

批处理文件 - 删除第二个文件扩展名

使用批处理文件有一种方法可以从目录中的所有文件中剥离.deploy扩展名.

例如

1.txt.deploy => 1.txt
2.txt.deploy => 2.txt 
Run Code Online (Sandbox Code Playgroud)

等等

rename batch-file

32
推荐指数
1
解决办法
4万
查看次数

在Windows上使用VirtualEnv和多个Python版本

我的机器上有python 2.7.6和3.4.0.2.7版本在我的路上.我想用3.4建立一个virtualenv.SO和其他地方有很多帖子建议我从命令提示符处执行以下操作:

virtualenv -p c:\python34 myvirtualenv
Run Code Online (Sandbox Code Playgroud)

但这对我不起作用.控制台会话具有管理员权限,UAC已关闭,但是我收到权限问题:

F:\virtualenv>virtualenv -p c:\python34 myenv
Running virtualenv with interpreter c:\python34
Traceback (most recent call last):
  File "c:\python27\scripts\virtualenv-script.py", line 9, in <module>
    load_entry_point('virtualenv==1.11', 'console_scripts', 'virtualenv')()
  File "C:\Python27\lib\site-packages\virtualenv.py", line 779, in main
    popen = subprocess.Popen([interpreter, file] + sys.argv[1:], env=env)
  File "C:\Python27\lib\subprocess.py", line 709, in __init__
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 957, in _execute_child
    startupinfo)
WindowsError: [Error 5] Access is denied
Run Code Online (Sandbox Code Playgroud)

我也试过它专门指向3.4版本的virtualenv,但没有改变路径它最终执行混合包2.7和3.4 python文件.

我可以找到设置我的虚拟环境的唯一方法是将我的路径改为3.4,运行virtualenv然后将我的路径重置为2.7,这将击败virtualenv上的python开关点.

谢谢

python virtualenv

14
推荐指数
3
解决办法
1万
查看次数

如何在正则表达式中跳过引用的文本(或如何在Unicode文本中使用HyperStr ParseWord?)

我需要正则表达式帮助创建一个delphi函数来替换Rad Studio XE2中的HyperString ParseWord函数.HyperString是一个非常有用的字符串库,从未跳转到Unicode.我得到它主要工作,但它根本不尊重引用分隔符.我需要它与下面描述的功能完全匹配:

function ParseWord(const Source,Table:String; var Index:Integer):String;

使用单字符分隔符表的顺序,从左到右的令牌解析.引用字符串中的分隔符将被忽略.表中不允许使用引号分隔符.

索引是由函数更新为指向下一个单词的指针(初始化为第一个单词的'1').要检索下一个单词,只需使用先前返回的索引值再次调用该函数.

注意:如果Length(Resultant)= 0,则没有其他单词可用. 引用字符串中的分隔符将被忽略.(我的重点)

这是我到目前为止:

function ParseWord( const Source, Table: String; var Index: Integer):string;
var
  RE : TRegEx;
  match : TMatch;
  Table2,
  chars : string;
begin
  if index = length(Source) then
  begin
    result:= '';
    exit;
  end;

  // escape the special characters and wrap in a Group
  Table2 :='['+TRegEx.Escape(Table, false)+']';
  RE := TRegEx.create(Table2);
  match := RE.Match(Source,Index);
  if match.success then
  begin
    result := copy( Source, Index, match.Index - Index);
    Index := …
Run Code Online (Sandbox Code Playgroud)

regex delphi

5
推荐指数
1
解决办法
915
查看次数

CreateProcessW 不尊重命令行

我正在尝试在 dll 中实现 CreateProcessW,以便用户可以在单独的进程中启动应用程序。

对于初学者,我正在对代码中的命令进行硬编码,直到我弄清楚为止。

我有

STARTUPINFO si = {sizeof(STARTUPINFO), 0};
si.cb = sizeof(si);
PROCESS_INFORMATION pi = {0};
LPCTSTR AppName=L"c:\\utilities\\depends.exe";
LPTSTR Command = L"c:\\utilities\\tee.exe";
if (CreateProcessW(AppName, Command, 0, 0, 0, CREATE_DEFAULT_ERROR_MODE, 0, 0, &si, &pi)) {
        CloseHandle(pi.hThread);
        CloseHandle(pi.hProcess);
        return GX_RESULT_OK;
    } else {
        .. show error msg
    }
Run Code Online (Sandbox Code Playgroud)

这将启动 Depends,但不会打开 Tee.exe。没有错误,它只是忽略命令行参数。参数是正确的,我可以在运行提示下运行它,它工作正常。如果我将 AppName 留空并指定 Depends.exe 作为命令参数它也可以工作,但如果我指定

LPTSTR Command = L"c:\\utilities\\depends.exe c:\\utilities\\tee.exe";
Run Code Online (Sandbox Code Playgroud)

我收到错误 3:“系统找不到指定的路径”。

此外,通过指定 lpCurrentDirectory 参数,它同样会被忽略。

c++ winapi c++builder c++98

5
推荐指数
1
解决办法
4101
查看次数

"extern PACKAGE TMyForm*MyForm"是什么意思

在C++ Builder XE2中,IDE将在TMyForm类之后立即将此行代码放在与TMyForm关联的头文件中.我敢肯定,这涉及到一个事实,即所有TMyForm在MyForm.dfm定义和需要的属性以某种方式链接到可执行文件,但我不能找到文档中或在线对它的任何引用.谷歌搜索"extern PACKAGE"只会产生大量包含该短语的代码示例.

奇怪的是,评论它似乎没有任何影响.我甚至删除了.res文件并进行了重建,没有它就可以正常运行.这似乎否定了我的上述假设.

c++ c++builder

3
推荐指数
1
解决办法
1901
查看次数

神秘链接器警告:两个模块中定义的公共符号

我有2个字符串数组,在头文件中定义如下:

#ifndef DRC_DefinesH
#define DRC_DefinesH
#include <string>
#include <System.hpp>
//---------------------------------------------------------------------------

std::string MagFields[] = {
   "SCAN", "EVENT", "EVENT2", "EVENT1", "EVENT3", "VECTORX", "VECTORY", "VECTORZ", "MAG1RAW", "MAG2RAW", "MAG3RAW",
   "MAG4RAW", "MAG1UNCOMP", "MAG2UNCOMP", "MAG3UNCOMP", "MAG4UNCOMP", "MAG1COMP", "MAG2COMP", "MAG3COMP", "MAG4COMP",
   "GRAD1", "GRAD2", "GRAD3", "UTC", "LAT", "LON", "ALT", "ANALOG1", "ANALOG2", "ANALOG3", "ANALOG4", "SYSTIME"};

std::string AnalogFields[] = {
   "SCAN", "EVENT0", "EVENT1", "EVENT2", "EVENT3", "ANALOG1", "ANALOG2", "ANALOG3", "ANALOG4", "ANALOG5", "ANALOG6",
   "ANALOG7", "ANALOG8", "ANALOG9", "ANALOG10", "ANALOG11", "ANALOG12", "ANALOG13", "ANALOG14", "ANALOG15", "ANALOG16",
   "ANALOG17", "ANALOG18", "ANALOG19", "ANALOG20", "ANALOG21", "ANALOG22", "ANALOG23", "ANALOG24", "ANALOG25", …
Run Code Online (Sandbox Code Playgroud)

c++ c++builder

3
推荐指数
1
解决办法
2456
查看次数

c ++无法将派生类转换为基类

我有一个非常简单的基类/派生类场景:

#include <tchar.h>
#include <stdio.h>
#include <iostream.h>
#include <conio.h>

       class BaseChannel{
          private:
          public:
           virtual ~BaseChannel(){};
           virtual void SayBoo( bool SelectAll)=0;
       };

       class gdbChannel: BaseChannel{
       public:
         void SayBoo(bool SelectAll) {if (SelectAll) cout<<"boo";}
       };

       class UsesChannel{
       public:
          BaseChannel * c;
       };


int _tmain(int argc, _TCHAR* argv[])
{
   gdbChannel gc;
   UsesChannel uc;
   // uc.c = &gc; //cannot convert gdbChannel* to BaseChannel*
   uc.c = (BaseChannel*)&gc; // works
   uc.c->SayBoo(true);
   getch();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我上面说明的初始实现将无法编译.有谁能解释为什么?我觉得因为gdbChannel明确是BaseChannel的一个实例,所以不需要强制转换.

c++ polymorphism

1
推荐指数
1
解决办法
3586
查看次数

django-admin抛出语法错误 - 配置问题我想

我在Python中相当绿,并试图让django努力建立一个简单的网站.我在Python 2.7.6下安装了Django 1.6,但无法运行django-admin.根据教程我应该创建一个项目如下,但我得到一个语法错误:

Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> import sys
>>> print(django.VERSION)
(1, 6, 0, 'final', 0)
>>> django-admin.py startproject Nutana
  File "<stdin>", line 1
    django-admin.py startproject Nutana
                               ^
SyntaxError: invalid syntax
>>>
Run Code Online (Sandbox Code Playgroud)

我在site-packages目录中创建了一个.pth文件,其中包含:

c:\python27\lib\site-packages\django
c:\python27\lib\site-packages\django\bin
Run Code Online (Sandbox Code Playgroud)

但这没有用.我也用相对路径尝试过它,而斜线则用另一种方式.

我也直接从命令行尝试:

Z:\Nutana GeophysicsXXX\Web_Django>python django-admin.py startproject Nutana
python: can't open file 'django-admin.py': [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)

我哪里出错?

python django

1
推荐指数
1
解决办法
6700
查看次数

在函数调用中创建的对象与传入的对象之间有什么区别

这显然是我自学计算机科学教育的一个漏洞......

wxWidgets应用程序中文本控件(wxTextCtrl)的构造函数具有验证器对象的可选参数.所有代码示例都在文本控件的构造函数中动态创建验证器.

这有效..

wxString value = L"0.0";
wxTextCtrl* _Text = new wxTextCtrl(this, wxID_ANY, value, 
    wxDefaultPosition, wxDefaultSize, 0, 
    wxTextValidator(wxFILTER_NUMERIC, &value));
Run Code Online (Sandbox Code Playgroud)

但是在我的特殊情况下,我想在另一个函数中创建验证器并将其传回,这是行不通的.作为一个中间步骤,我试图在创建wxTextCtrl之前创建它并将其传递但是这也不起作用......

wxString value = L"0.0";
wxValidator valid = wxTextValidator(wxFILTER_NUMERIC, &value);
wxTextCtrl* _Text = new wxTextCtrl(this, wxID_ANY, value, 
    wxDefaultPosition, wxDefaultSize, 0, valid);
Run Code Online (Sandbox Code Playgroud)

虽然这编译并运行但它不执行验证.有谁能解释为什么?

wxTextValidator的原型调用常量引用.

wxTextCtrl::wxTextCtrl  (   wxWindow *  parent,
    wxWindowID  id,
    const wxString &    value = wxEmptyString,
    const wxPoint &     pos = wxDefaultPosition,
    const wxSize &  size = wxDefaultSize,
    long    style = 0,
    const wxValidator &     validator = wxDefaultValidator,
    const wxString & …
Run Code Online (Sandbox Code Playgroud)

c++ wxwidgets c++11

1
推荐指数
1
解决办法
89
查看次数

如何从 gfortran 使用 loadlibrary 和 getprocaddress?

我正在尝试学习如何从 Windows 上的 fortran 可执行文件调用 fortran dll 中的函数。我正在 Eclipse 中使用 gfortran 4.7 和 photran。

我的测试 dll 在 hello.f90 中有一个函数:

你好.f90

subroutine hello
    implicit none
    print *, "Hello World!"
end subroutine hello
Run Code Online (Sandbox Code Playgroud)

使用以下生成文件:

all:
    gfortran -Wall -c hello.f90
    gfortran -shared -o hello.dll hello.o
Run Code Online (Sandbox Code Playgroud)

Dependency Walker 确认已导出函数“hello_”。

现在我正在尝试构建一个动态调用它的程序。我根据在网上找到的示例构建了以下内容,但无法编译:

main.f90

program main
    implicit none
    integer :: p
    pointer (q, hello)
    p = loadlibrary("hello.dll")
    q = getprocaddress(p, "hello_")
    call hello
end program main
Run Code Online (Sandbox Code Playgroud)

生成文件

all:
    gfortran -Wall -pedantic -fcray-pointer main.f90 
Run Code Online (Sandbox Code Playgroud)

错误消息是函数 LoadLibrary(和 getprocaddress)没有 IMPLICIT …

fortran gfortran

0
推荐指数
1
解决办法
4311
查看次数