Q&A

  • [질문] 비문서화 윈도우 API를 정의해서 사용하는법/주의점이 궁금합니다.
델파이 7을 사용하고 있습니다.

NtOpenDirectoryObject()
NtQueryDirectoryObject()
NtOpenSymbolicLinkObject()
NtQuerySymbolicLinkObject()

위 4개의 비문서화된 윈도우 API를 사용해 보고 싶은데, 델파이 7에는 정의되어 있지 않네요.

인터넷을 뒤지다가 위 4개 함수가 있다는것과 함께 예제까지 발견을 했습니다만,
Visual C 코드로 되어있는것 같은데, 제가 VC에 대한 이해와 VC코드를 델파이로 옮기는것에 대한 이해가 부족해서
이걸 델파이에서 어떻게 선언하고 써야 할지 모르겠습니다.
(데이터 타입, 구조체 타입, 인자의 순서 같은것 말입니다...)

이런 VC코드를 델파이로 선언하는법에 대한 설명이나 링크 부탁드립니다.
혹시 너무 방대하여 예제만 간단히 옮겨주는게 더 효율적이라면, 아래 링크의 것을 바꾸어주셔도 됩니다.

위 함수에 대한 간략 설명 : http://www.ddj.com/windows/184416468?pgno=1
위 함수들에 대한 예제 헤더 파일 : http://www.ddj.com/showArticle.jhtml?documentID=wdj9710b&pgno=5
위 함수를 사용하는 예제 : http://www.ddj.com/showArticle.jhtml?documentID=wdj9710b&pgno=6
3  COMMENTS
    • 송 시중
    • 2009.02.12 21:05
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2009.02.12 21:24
      그렇군요.. 저도 다른 API와 뭐가 다를까 궁금하군요.. 컨버젼 하기 구찮아서 C++ Builder 로 해봐야 겠...
    • 최용일
      2009.02.12 22:22
      오래전부터 Project JEDI에서 컨버팅을 해오고 있었던 내용들이군요... http://jedi-apilib.sourcefor...
    • 송 시중
      2009.02.12 22:26
      와.. 좋은 사이트를 알았네요. 감사합니다.
    • 김동원
      2009.02.17 17:48
      CreateProcess의 원형은 다음과 같습니다. BOOL CreateProcess( LPCTSTR lpApplicationName, LP...
    • Elpira
    • 2009.02.12 08:48
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2009.02.11 00:58
      아주 옛날에 테스트용으로 ActiveX 로 바꿔봤던 기억이 있네요. http://www.delmadang.com/ 델마당의...
    • Marek
      2009.02.11 22:24
      예 님의 생각이 맞습니다만 ActiveX프로젝트를 일단 생성하면 Propert와 Event가 상당부분 없어지기 때...
    • 한경수
    • 2009.02.10 21:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Marek
      2009.02.11 22:21
      서버측의 방화벽에서 11433port가 Any to Any로 되어 있는지 확인해 보시는 것이 좋을것 같습니다. BDE...
    • JM
    • 2009.02.10 14:21
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2009.02.10 18:55
      탭 위치에 탭 갯수만큼 TImage 를 놓고 탭을 대신하는 방법이 깔끔 할 겁니다..
    • 소울해커
      2009.02.10 20:08
      TabControl의 마우스 다운 이벤트에서 if PtInRect(Rect(R.Left + 160, R.Top + 8, R.Left + 160 + Im...
    • JM
      2009.02.10 20:14
      답변감사합니다 ^^
    • 고명수
    • 2009.02.10 08:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2009.02.10 20:09
      TransprentColor 속성이 있을텐데 그걸 Color 값과 맞춰 보세요.
    • 조성환
    • 2009.02.10 02:47
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2009.02.10 18:53
      아마 DLL 에 있는 델파이 폼에서 문제가 발생하는 것으로 보입니다. 델파이 폼에는 전역적으로 TAppli...
    • 조성환
      2009.02.10 22:25
      감사합니다. 해결방법을 검색해보도록 하겠습니다.
    • 박종철
      2009.02.10 00:14
      자답입니다. Aplication.MessageBox('중복된 파일을 덮어쓰시겠습니까?', '다른 이름으로 저장', MB_Y...
    • 소울해커
      2009.02.09 21:07
      TMS 그리드고 번호가 단순히 1부터 RowCount까지만 들어간다면 ContextGrid->AutoNumberCol(0); ...
    • 박진수
      2009.02.09 22:36
      우왓!!! 너무 잘됩니다!!!! ㅜ.ㅜ 소울해커님 너무 고맙습니다!!! 사랑해요! 뽀뽀라도 해드리고 싶...
    • 타락천사
      2009.02.09 23:46
      TMemoField 에서 TStringList 에 받아서 스트링그리드의 셀에 넣으면 될 겁니다. VAR aBlobS...
    • 전봉수
      2009.02.12 01:45
      타락1004님 답변 갑사합나다. 설명하신 대로 해보려하니 어떻게 소스코드를 만들어야할지 황당 합니다. ...
    • 소울해커
      2009.02.17 03:46
      TMemoField 부분을 쿼리에서 불러온 메모필드로 넣으시고 MyList에 값이 들어가고 나면 StringGrid...
    • 21세기
    • 2009.02.09 07:39
    • 7 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2009.02.09 19:17
      원하는것이 무엇인지요???? 파일을 복사하려는것이 목적인지... 등록정보에 뭔가 표시할려고 하는것이...
    • 21세기
      2009.02.09 23:02
      파일의 전체 사이즈는 같게하고, 파일의 특정한 일부분만 복사하고 싶습니다.
    • 타락천사
      2009.02.09 23:18
      1. 크기 100 MB TFileStream.Size := 100 MB 2. 일부분 복사 TFileStream.Posistion := 0; 한 ...
    • 21세기
      2009.02.10 06:54
      먼저, 답변 감사드립니다. var FS: TFileStream; Buf: array[0..1024] of char; begin FS...
    • 타락천사
      2009.02.10 18:49
      질문 : FS.Write(Buf, SizeOf(Buf)); <--- 이부분에서 속도가 느려지는군요. 빠르게 할 수 없을까요...
    • 이정욱
      2009.02.12 13:19
      빠르게 할수 있습니다. 버퍼 사이즈를 늘리세요. 1k는 너무 작네요.
    • 타락천사
      2009.02.13 00:23
      헉.. 한 질문에 여러 다른 해석이 있군요..
    • 최용일
      2009.02.09 19:23
      눈으로 봐도 utf8인지 알 수 없어요... 디코딩할 필요가 없다는 것을 알아서 안하는것이 아니라 디폴트...
    • 조일현
    • 2009.02.08 00:12
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2009.02.09 23:14
      try if frmMain.ComPort1.Connected then <<<<< 이부분에서 위의 오...
    • 조일현
      2009.02.10 00:11
      ㅠㅜ 타락님께서 가르쳐 주신 방법으로 해보았으나 되지 않습니다... 위의 그림 파일과 같은 에러창이 a...
    • 타락천사
      2009.02.10 00:35
      CPort 3.1 은 사용해 본적이 있습니다. 안정적인 버젼이었던 걸로 기억 합니다. 아마도, // if fr...
    • 조일현
      2009.02.10 02:52
      네 frmMain 에 nil이 들어있네요 그럼 이걸 어떻게 해야 하나요?? 써주지 말아야 되나요?
    • 박무개
    • 2009.02.07 02:24
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 와이군
      2009.02.07 10:34
      function Format(const Format: string; const Args: array of const): string; Format 함수의 Args인...
    • 박무개
      2009.02.09 17:12
      덕분에 해결 하였읍니다. 답변 감사합니다. 즐거운 하루 되세요.
    • 윤병길
    • 2009.02.07 01:50
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2009.02.09 23:10
      쩝.. 스크린의 가로세로 인치당 도트수가 같은 경우 값 얻기. PixelPerInchY := Screen.PiexelsPerIn...
    • Marek
      2009.02.09 23:16
      참고하십시요. Bitmap의 경우에는 가로세로의 크기만 있기때문에 아래코드의 Dpi는 의미가 없습니다. ...
    • 후초보
    • 2009.02.06 22:42
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2009.02.07 01:01
      Selected는 노드가 선택되어 있는지 아닌지를 알려주는 값입니다. True일 때 선택되어져 있음. 선택을 ...
    • 후초보
      2009.02.07 03:56
      감사합니다. 가르켜 주신대로 해 보았는데 선택된것을 확인해 보니 선택은 되어있는데 마우스로 선택한 ...
    • 최용일
      2009.02.07 04:48
      treeComp.AddToSelection(Node); 스크롤은 WM_VSCROLL로 검색해보세요.
    • 후초보
      2009.02.07 23:56
      감사합니다. 그런데.. AddToSelection 메소드(?)가 없습니다. 컴퍼일하니 treeComp.AddToSelection ...
    • 최용일
      2009.02.09 19:15
      아 protected였네요... Selected를 이용하면 쉽게 할 수 있네요... 좀 어렵게 생각했었군요... 이거 다...
    • 후초보
      2009.02.09 23:42
      감사합니다. 덕분에 해결책이 보이기 시작합니다. 이제 Scroll 을 해결 해야겠습니다. 고맙습니다.
    • 지이레크
      2009.02.13 19:43
      타락 천사 님.. 감사 글을 써 주셔서 감사 합니다. 그런데 써주진 방법은 파일을 자신의 PC 에 저...