2008-10-23 3 views
2

내 프로그램에서 mxmlc에 명령 줄 컴파일 명령을 사용할 때 오류가 발생했습니다. 이 오류는 시스템 글꼴 목록의 flex에 의해 올바르게 식별되지 않은 포함 된 글꼴 이름 과 관련이 있습니다.실행중인 프로세스에 대한 명령 줄 인수를 얻는 방법

그러나 어쩔 수없이 코드를 Flex Builder에 복사하고 코드를 컴파일하기로 결정했습니다. 놀랍게도, 그것은 작동했고, 나는 주어진 시스템 이름 (PMingLiU)을 사용하여 적절한 글꼴을 찾았습니다.

내 문제가 로케일 일 수 있으며 로케일 고려 사항으로 인해 내 시스템에서 글꼴 이름을 올바르게 식별 할 수 없다고 생각됩니다.

컴파일 코드의 로케일을 en_US로 설정하려고했지만 소용이 없습니다. 따라서 Flex Builder가 MXML 컴파일러를 정확히 호출하는 방법을 알고있는 사용자와 mxmlc를 직접 실행하는 것과 비교할 때 어떤 차이가 있는지 묻고 싶습니다. mxmlc를 명령 줄 매개 변수를 캡처하는 자체 실행 파일로 바꾸려고했기 때문에 mxmlc.exe를 직접 사용하지 않는다는 것을 알고 있습니다.

중요한 점은 사용되는 OS는 Windows XP입니다.

답변

1

질문에 대한 정확한 답변 (Flex Builder가 mxmlc.exe에 전달하는 명령 줄 인수)이 없지만 메타 응답이 있습니다. 두 가지 방법 중 하나를 사용하여 명령 줄을 찾을 수 있습니다.

첫 번째는 플랫폼에 독립적이지만 작은 C++ 프로그램을 컴파일해야합니다. 유사한 문제를 해결하기 전에이 방법을 사용했습니다. 할 수있는 일은 파일에 명령 줄을 출력하는 래퍼 응용 프로그램을 만드는 것입니다. 이 응용 프로그램을 빌드하고 mxmlc.exe의 임시 대체 파일로 드롭하면 Flex Builder에서 실행하면 결과 파일 "cmdline.txt"에 액세스하여 호출 된 전체 명령 줄을 얻을 수 있습니다.

#include <iostream> 
#include <fstream> 
using namespace std; 

int main(int argc, char* argv[]) 
{ 
    ofstream cmdLine; 
    cmdLine.open("cmdline.txt"); 

    for (int i = 0; i < argc; i++) { 
    cmdLine << argv[i]; 
    if (i < argc) 
     cmdLine << " "; 
    } 

    cmdLine.close(); 
    return 0; 
} 

당신은 플렉스 빌더에서이 더러운 트릭을 재생에 대한 느낌이 좋지 않으면, 당신은 Windows에서 실행중인 가정 대안이있다. WMI을 사용하여 실행중인 모든 프로세스를 반복하고 명령 줄 정보를 얻을 수 있습니다. Ruby를 제 언어로 선택한다면, Windows 용 Ruby 인터프리터를 설치해야합니다. One-Click Ruby Installer for Windows으로 쉽게 할 수 있습니다. 단지로 시작된 프로세스 나 정규 표현식에 추가 한

require 'win32ole' 
wmi = WIN32OLE.connect("winmgmts://") 
processes = wmi.ExecQuery("select * from win32_process") 

for process in processes do 
    cmdLine = process.CommandLine 
    puts "Command line: #{cmdLine}" if cmdLine =~ /mxmlc/ 
end 

명령 줄을 인쇄하는 "플렉스 빌더가 빌드를 개막으로

설치 한 후, 바로 즉시이 스크립트를 실행 mxmlc "명령 줄에서 (귀하의 필요에 따라 작동합니다). 각 프로세스에 걸쳐 반복의보다 일반적인 솔루션의 경우 단지 포함하는 행의 끝에있는 경우 절을 제거 :

puts "Command line: #{cmdLine}" if cmdLine =~ /mxmlc/ 

이렇게하면 StartRemoteThread 어떤 낮은 수준의 마법을 수행하고 탐색의 두통을 절약 할 수 PEB 구조.

질문의 성격과 개발 OS에 대한 추가 정보가없는 한 최선의 방법입니다. 이 방법으로 문제가 해결되면 유사한 문제에 직면 한 사람들이이 솔루션을 찾을 수 있도록 게시물을 편집 할 것을 제안 할 수 있습니다. "실행중인 프로세스에 대한 명령 줄 인수를 얻는 방법"과 같은 제목은 더 적합 할 수 있습니다.

관련 문제