Find Jobs
Hire Freelancers

C# Wrapping of Native C++ DLL

$500-2500 USD

En curso
Publicado hace alrededor de 19 años

$500-2500 USD

Pagado a la entrega
**Task Description:** A native C++ DLL needs to be wrapped so that it is accessible from managed Visual Studio .NET languages, specifically C#. The C++ DLL uses DirectX; therefore, the managed language wrapper must also make use of DirectX through the managed DirectX interface in DirectX 9.0. The C++ DLL makes extensive use of polymorphism and objects are used as method parameters. As a result, all C++ functions in the DLL are decorated (name mangled). The DLL has a total of 115 public functions. **Possible Solutions **There are several possible solutions to achieving interop from a managed language. The solution you choose may be different. The first option is the brute force approach. Create a C++ language wrapper that flattens the object-oriented design of the native C++ interface. With a flattened C++ wrapper it is possible to create a DLL that may be accessed directly from managed code. This option is the least attractive because it requires wrapping for the entire interface - method signatures would likely change to remove polymorphism. The second option is to use an open source tool like SWIG (<[login to view URL]>) to autogenerate this interface. SWIG is able to generate C# language bindings from a native C++ library - therefore, this may be a viable option. A third option is to thunk or make method calls into the DLL using decorated functions. This approach is not desirable because the underlying DLL, when recompiled, may have different function names. It is likely that a better solution is available. The key design criteria is that the wrapper is extensible and maintainable. ## Deliverables **Update **The DLL that needs to be wrapped is the SpeedTree RT C++ DLL. Header files are included. However, we are under NDA with SpeedTree, therefore I cannot provide an include file to the general public. You may request an evaluation license of the DLL from SpeedTree ([[login to view URL]][1]). In short, there are 115 methods that we need wrapped to perform C# interop with. **Deliverables **The wrapper to this DLL is to be delivered in three increments. The first increment demonstrates basic functionality of the chosen concept/approach. The second deliverable is a sample program that uses approximately ten functions in the DLL. The third and final deliverable is a fully functioning example demonstrating successfull invocation of all 115 methods on the C++ DLL via C#. If bugs are identified in the final deliverable it is incumbent on the developer to provide bug fixes. **Terms **1) The finished product (wrapper, source code, resulting tools) becomes the sole property of the buyer. This product may not be resold or used in other products. 2) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 3) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables): 4) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request. 5) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement). **Payment **This work must be completed on a four week schedule. Payment is delivered in full upon completion of the product. Bid Request Updated: The DLL that needs to be wrapped is the SpeedTree RT C++ DLL. Header files are included. However, we are under NDA with SpeedTree, therefore I cannot provide an include file to the general public. You may request an evaluation license of the DLL from SpeedTree ([login to view URL]). In short, there are 115 methods that we need wrapped to perform C# interop with. Bid Request Updated: The wrapper to the C# application must use the SpeedTree API via Managed DirectX. A wrapper to a client that uses native DirectX is not the solution we need. We need SpeedTree to work within Managed DirectX. * * *This broadcast message was sent to all bidders on Wednesday May 11, 2005 8:53:34 AM: Bid Request Updated: The wrapper to the C# application must use the SpeedTree API via Managed DirectX. A wrapper to a client that uses native DirectX is not the solution we need. We need SpeedTree to work within Managed DirectX. ## Platform **Platform: **Visual Studio .NET 2003, C# WindowsXP Managed DirectX 9.0c (Febuary 2005) DirectX 9.0c (Febuary 2005) .NET Framework 1.1
ID del proyecto: 3667599

Información sobre el proyecto

2 propuestas
Proyecto remoto
Activo hace 19 años

¿Buscas ganar dinero?

Beneficios de presentar ofertas en Freelancer

Fija tu plazo y presupuesto
Cobra por tu trabajo
Describe tu propuesta
Es gratis registrarse y presentar ofertas en los trabajos
Adjudicado a:
Avatar del usuario
See private message.
$1.189,99 USD en 101 días
5,0 (6 comentarios)
4,6
4,6
2 freelancers están ofertando un promedio de $1.657 USD por este trabajo
Avatar del usuario
See private message.
$2.125 USD en 101 días
4,7 (26 comentarios)
6,9
6,9

Sobre este cliente

Bandera de UNITED STATES
United States
5,0
77
Miembro desde dic 22, 2004

Verificación del cliente

¡Gracias! Te hemos enviado un enlace para reclamar tu crédito gratuito.
Algo salió mal al enviar tu correo electrónico. Por favor, intenta de nuevo.
Usuarios registrados Total de empleos publicados
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Cargando visualización previa
Permiso concedido para Geolocalización.
Tu sesión de acceso ha expirado y has sido desconectado. Por favor, inica sesión nuevamente.