Вы совершенно правы, что существует проблема там, но для большинства случаев существует ровное простое решение, чем другие ответы (до сих пор) сделали предложение. Можно продолжить использовать новый и удалить свободно - все, что необходимо сделать, новая перегрузка, и удалите для каждого класса в библиотеке, которой можно было бы пользоваться через границы DLL.
Лично, я просто определил простой класс для обеспечения необходимой функциональности:
class NewDelete
{
public:
void *operator new (size_t size);
void operator delete (void *memory);
void *operator new (size_t size, void *ptr);
void operator delete (void *memory, void *ptr);
};
, пока те четыре функции членства все определяются в том же DLL, тогда любой класс, который происходит из этого класса, автоматически "безопасен от DLL" - новый, и удалите, может обычно использоваться на них, не вызывая беспокойство о границах DLL.
@Martin решение Devillers хорошо работает. Для полноты, обеспечивая шаги ниже:
src/main/resource
В файле англичанина, добавьте и wsdlDirectory и wsdlLocation (не отсутствуйте / в начале wsdlLocation), как ниже. В то время как wsdlDirectory используется, чтобы сгенерировать код, и wsdlLocation используется во времени выполнения для создания динамического прокси.
<wsdlDirectory>src/main/resources/mydir</wsdlDirectory>
<wsdlLocation>/mydir/my.wsdl</wsdlLocation>
Затем в Вашем коде Java (с конструктором без аргументов):
MyPort myPort = new MyPortService().getMyPort();
Вот полная часть генерации кода в файле англичанина с быстрым API в сгенерированном коде.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.5</version>
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-fluent-api</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-tools</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>wsdl-to-java-generator</id>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<xjcArgs>
<xjcArg>-Xfluent-api</xjcArg>
</xjcArgs>
<keep>true</keep>
<wsdlDirectory>src/main/resources/package</wsdlDirectory>
<wsdlLocation>/package/my.wsdl</wsdlLocation>
<sourceDestDir>${project.build.directory}/generated-sources/annotations/jaxb</sourceDestDir>
<packageName>full.package.here</packageName>
</configuration>
</execution>
</executions>