2012-09-10 7 views
0

나는 C++에서 하나의 dll을 writin했다. 완벽하게 C# 응용 프로그램에서 실행된다. 는이플랫폼 독립적 인 C++ DLL

#include "stdafx.h" 
#include "fun.h" 

extern "C" __declspec(dllexport)double Add(double a, double b,double k); 
extern double Add(double a, double b,double k) 
{ 
    return a+b+k; 
} 

이제 내가 내 현재 DLL에 있어야합니다 MAC apps..what 변화에 대한이 같은 DLL을 실행하려면 같은 뭔가?

+3

플랫폼 독립적 인 dll을 작성할 수 없습니다. 그들은 아키텍처 (x86 또는 x64)에 의존하며 창에서만 작동합니다. 리눅스에서는 .so와 .mac에서 .dylib을 공유 라이브러리로 사용합니다. – victorsavu3

+0

다른 플랫폼에 익숙해야합니다. 언어는 동일하지만 라이브러리와 컴파일러는 종종 다릅니다. 따라서 컴파일 과정 전체가 다를 수 있습니다. 작업량은 DLL에서 사용중인 라이브러리 및 크기에 따라 다릅니다. – bcelary

+0

Mac에서 C# 응용 프로그램을 어떻게 실행 하시겠습니까? 그렇지 않다면 누가 도서관을 사용할 것입니까? – MSalters

답변

4

Windows와 Mac에서 모두로드되는 DLL을 만들 수 없습니다. Mac 용 코드를 다시 컴파일해야합니다.

+0

나는 Mac에서 C++ dll을 컴파일 할 수 있습니까 ??? MAC에 새로 입문 된 m .. –

+1

물론. Mac 용 C++ 컴파일러 만 있으면됩니다. –

+0

다른 개발 플랫폼을 사용하고 있거나 적절한 MAC 개발 환경에서 컴파일하려면 크로스 컴파일러가 필요합니다. –

0

Mac에서는 dll을 실행할 수 없습니다. Mac에 자체 동적로드 라이브러리가 있습니다.

+1

그리고 "dll"은 "동적으로로드 된 라이브러리"가 아니라면 무엇을 의미합니까? 결과는 라이브러리처럼 작동하지 않지만 단일 객체와 비슷하므로 어휘 선택이 좋지 않습니다. 그러나 그것은 내가 포기한 전투입니다. 모든 사람들이 심지어 리눅스에서 DLL이라고 부릅니다. –

0

C# 사용을 주장하는 경우 2 가지 옵션이 있다고 생각합니다. 첫 번째 옵션은 코드가 Mac에서 모노로 실행되는지 확인하는 것입니다. 이를 위해 매킨토시 실행 파일과 동적 라이브러리를 생성합니다.

http://lipsky.me/2012/7/21/calling-a-dynamic-library-from-monomac-part-1

http://www.mono-project.com/Mono:OSX 두 번째는 .NET 2.0 이하를 사용하고 응용 프로그램이 매킨토시에 와인에서 실행되는지 확인하는 것입니다. .NET 3.X 이상에서는 와인에 많은 문제가 발생하거나 설치되지 않으므로 코드에서 .NET 3.X 이상을 사용하지 마십시오.

http://appdb.winehq.org/objectManager.php?sClass=version&iId=3754

관련 문제