일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 인스톨
- 파라미터
- dll
- c#
- 데이터베이스
- SQL
- Firebird
- vb
- 예제
- 파이어버드
- PostgreSQL
- 소니
- 셋업
- Delphi
- 기초
- xml
- 초보
- 입문
- 시리얼 통신
- winsock
- MFC
- Visual Studio 2005
- WIN32 SDK
- 델파이
- 설치
- 문자열
- MySQL
- Visual Basic
- SDK
- VB.NET
- Today
- Total
목록dll (10)
프로그래밍 노트
C#에서 DLL만들고 사용하기개발환경은 Visual C# 2010 Express에서의 예제이다. 이 내용은 Visual Studio 2010에서 해도 문제가 없다.메뉴 표시는 대신 한글이여서 조금은 이해하기 편할 것 같다. 먼저 DLL을 사용할 프로젝트를 만든다. 먼저 File > New Project를 선택한다.Console Application을 선택하고 적당한 이름을 입력한 후 OK를 누른다. 여기서 입력한 이름으로 프로젝트가 만들어지고 이 이름의 네임스페이스가 생긴다.그러면 아래와 같이 자동으로 소스가 조금 만들어진다. 사용할 DLL 프로젝트 만들기솔루션에서 왼쪽 클릭을 하고 Add > New Project를 선택한다. Class Library를 선택하고 DLL의 이름을 적고 OK를 누른다. DL..
DLL의 파라미터를 동적 배열로 넘기기 DLL의 반환값을 동적 배열로 반환하기 library SecondDll; uses SysUtils, Classes; {$R *.res} type TDynArrVal = array of Integer; function DynamicSum(DynArr: TDynArrVal): Integer; stdcall; var i, iSum : integer; begin iSum := 0; for i := Low(DynArr) to High(DynArr) do iSum := iSum + DynArr[i]; Result := iSum; end; function DynamicReturn(iCnt: integer): TDynArrVal; stdcall; var i : integer; D..
델파이 DLL 만들기 library FirstDll; uses SysUtils, Classes, Windows; {$R *.res} // 더하기 function NumPlus(iA, iB: Integer): Integer; stdcall; begin Result := iA + iB; end; // 메세지 박스 표시하기 function MsgBoxYN(pcMsg: PChar; pcTitle: PChar): BOOL; stdcall; begin Result := (MessageBox(0, pcMsg, pcTitle, MB_YESNO or MB_ICONQUESTION) = IDYES); end; exports NumPlus, MsgBoxYN; begin end. 델파이에서 만든 DLL 사용하기 unit uMa..
델파이에서 Form이 있는 DLL만들기 먼저 File메뉴에서 Other를 선택한다. New Items에서 DLL Wizard를 선택한다. 그리고 만들어진 DLL 프로젝트에서 오른쪽 클릭을 하여 Add New의 Form을 선택한다. 이렇게 하면 DLL에 폼을 추가하게 된다. 추가한 폼에 컨트롤들을 추가하고 이 폼에 대한 코딩을 한다. 폼 DLL을 확인하기 위한 프로그램을 만들기 위해서 ProjectGroup에서 오른쪽 클릭을 하여 Add New Project를 선택한다. New Items에서 VCL Forms Application을 선택한다. 이렇게 작업하면 우선 폼이 있는 DLL을 테스트할 수 있는 환경이 갖추어진다. (이 글을 전혀 델파이를 잘 모르는 사람을 위해 썼음) DLL이니까 당연히 DLL에서 ..
델파이에서 VC 8.0(VS 2005)에서 작성한 DLL을 사용하는데 개발환경이 셋업되어있지않은 곳에서 사용하는데 문제가 있어서 몇일간 삽질한 내용을 정리하고자한다. 테스트 환경 우선 Visual C++ Ver 8.0에서 DLL을 만들었다. 그리고 그것을 Delphi 2005에서 만든 실행 파일에서 불러서 쓰려했다. 실행파일을 실행한 OS는 Windows XP Professional SP2로 개발환경이 전혀 깔려있지않은 상태였다. ■ 첫번째 삽질 델파이라 만든 실행파일을 실행하면 아래의 메세지가 떴다. "응용 프로그램을 제대로 초기화하지 못했습니다(0xc0150002)." → 문제는 Visual C++ Ver 8.0에서 DLL을 만들 때 Debug 모드로 빌드를 해서 Debug용 DLL로 테스트를 했었다..
문자열 넘기고 받는 간단한 C의 DLL 소스 char szTemp[50]; extern "C" { // DLL 문자열 인수 입력 BOOL PASCAL EXPORT SetStr(char *pszSend) { sprintf(szTemp, "%s", pszSend); return true; } // DLL 문자열 인수로 문자열 넘겨주기 BOOL PASCAL EXPORT GetStr(char *pszSend) { sprintf(pszSend, "%s + %s", szTemp , szTemp); return true; } } DLL에서 문자열을 주고 받기 위해서는 델파이에서 PChar형으로 문자를 DLL에 넘겨주고 받으면 된다. 문자열을 넘기고 받는 델파이 소스 unit dtest; interface uses W..
VB에서 호출한 DLL 함수에 넘긴 파라미터의 값이 DLL 함수안에서 바뀌어진 것이 VB에서 넘긴 변수에 적용되게 하려할때, DLL 함수의 Declare에서 인수앞에 반드시 ByRef가 아니라 ByVal이 와야한다. # VB소스 Declare Function ByRefTest Lib "RefData.dll" (ByVal sData As String) As Integer # C소스 extern "C" int PASCAL EXPORT ByRefTest (char* pszData) { sprintf(pszData, "DLL TEST"); return 0; }
msado15.dll을 import하여 MFC로 DLL을 만들때 빌드하면 아래와 같은 형식 재정의 에러가 뜬다. 오류 1 error C2011: 'LockTypeEnum' : 'enum' 형식 재정의 d:\data\source\adll\adll\debug\msado15.tlh 228 오류 2 error C2011: 'DataTypeEnum' : 'enum' 형식 재정의 d:\data\source\adll\adll\debug\msado15.tlh 276 오류 3 error C2011: 'FieldAttributeEnum' : 'enum' 형식 재정의 d:\data\source\adll\adll\debug\msado15.tlh 321 오류 4 error C2011: 'EditModeEnum' : 'enum'..
◆ VB에서 DLL참조 Option Explicit On Module mdlMain Declare Function APlusB Lib "aigo.dll" (ByVal csLog As String) As Integer Public Function dllTest(ByVal nA As String, ByVal nB As String) As Integer dllTest = APlusB(nA , nB ) End Function End Module ◆ C의 간단 DLL // aigo.cpp #include "stdafx.h" #include "aigo.h" int WINAPI APlusB(int nA, int nB) { return nA + nB; } // aigo.h #pragma once #ifndef __AF..
우선 예제만 간단한 예제 소개부터... 그냥 밑에 소스를 가지고 프로그램을 만들기만 하면 된다. DLL만들때는 VS2005에서 만들때는 빈 프로젝트를 만들어서 소스 파일을 하나 추가해서 아래 소스를 붙여 넣는다. 메뉴의 프로젝트(P) > ??? 속성(P)...을 선택한다. 구성 속성 > 일반을 선택한뒤 프로젝트 기본값의 구성형식을 동적 라이브러리(.dll)을 선택하면 된다. DLL 불러쓰기의 프로젝트는 그냥 Win32콘솔 응용 프로그램에서 빈 프로젝트를 만들어서 소스를 추가하면 된다. 문자 집합은 멀티바이트 문자 집합 사용을 선택하면 밑에 소스를 그대로 쓸수있다. ◆ 초간단 DLL만들기 #include #include #define EXPORT extern "C" __declspec(dllexport) ..